diff options
Diffstat (limited to 'trace-read.c')
-rw-r--r-- | trace-read.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/trace-read.c b/trace-read.c index 38e3534..2e45bff 100644 --- a/trace-read.c +++ b/trace-read.c | |||
@@ -826,6 +826,7 @@ static void process_plugin_option(char *option) | |||
826 | } | 826 | } |
827 | 827 | ||
828 | enum { | 828 | enum { |
829 | OPT_check_event_parsing = 252, | ||
829 | OPT_kallsyms = 253, | 830 | OPT_kallsyms = 253, |
830 | OPT_events = 254, | 831 | OPT_events = 254, |
831 | OPT_cpu = 255, | 832 | OPT_cpu = 255, |
@@ -848,6 +849,8 @@ void trace_report (int argc, char **argv) | |||
848 | int test_filters = 0; | 849 | int test_filters = 0; |
849 | int raw = 0; | 850 | int raw = 0; |
850 | int neg = 0; | 851 | int neg = 0; |
852 | int ret = 0; | ||
853 | int check_event_parsing = 0; | ||
851 | int c; | 854 | int c; |
852 | 855 | ||
853 | list_head_init(&handle_list); | 856 | list_head_init(&handle_list); |
@@ -868,6 +871,8 @@ void trace_report (int argc, char **argv) | |||
868 | {"events", no_argument, NULL, OPT_events}, | 871 | {"events", no_argument, NULL, OPT_events}, |
869 | {"filter-test", no_argument, NULL, 'T'}, | 872 | {"filter-test", no_argument, NULL, 'T'}, |
870 | {"kallsyms", required_argument, NULL, OPT_kallsyms}, | 873 | {"kallsyms", required_argument, NULL, OPT_kallsyms}, |
874 | {"check-events", no_argument, NULL, | ||
875 | OPT_check_event_parsing}, | ||
871 | {"help", no_argument, NULL, '?'}, | 876 | {"help", no_argument, NULL, '?'}, |
872 | {NULL, 0, NULL, 0} | 877 | {NULL, 0, NULL, 0} |
873 | }; | 878 | }; |
@@ -948,6 +953,9 @@ void trace_report (int argc, char **argv) | |||
948 | case OPT_kallsyms: | 953 | case OPT_kallsyms: |
949 | functions = optarg; | 954 | functions = optarg; |
950 | break; | 955 | break; |
956 | case OPT_check_event_parsing: | ||
957 | check_event_parsing = 1; | ||
958 | break; | ||
951 | default: | 959 | default: |
952 | usage(argv); | 960 | usage(argv); |
953 | } | 961 | } |
@@ -1005,8 +1013,16 @@ void trace_report (int argc, char **argv) | |||
1005 | return; | 1013 | return; |
1006 | } | 1014 | } |
1007 | 1015 | ||
1008 | if (tracecmd_read_headers(handle) < 0) | 1016 | ret = tracecmd_read_headers(handle); |
1009 | return; | 1017 | if (check_event_parsing) { |
1018 | if (ret || pevent->parsing_failures) | ||
1019 | exit(EINVAL); | ||
1020 | else | ||
1021 | exit(0); | ||
1022 | } else { | ||
1023 | if (ret) | ||
1024 | return; | ||
1025 | } | ||
1010 | 1026 | ||
1011 | if (show_funcs) { | 1027 | if (show_funcs) { |
1012 | pevent_print_funcs(pevent); | 1028 | pevent_print_funcs(pevent); |