diff options
author | Namhyung Kim <namhyung@kernel.org> | 2014-03-18 21:22:53 -0400 |
---|---|---|
committer | Jiri Olsa <jolsa@redhat.com> | 2014-04-14 06:55:00 -0400 |
commit | 3388cc3eb848154d0f2a0cd01542201d0d0fdad7 (patch) | |
tree | 2b8f0e84d8e69f75618507da2a1356a8433aa9d4 /tools/lib/traceevent | |
parent | 5e09714b0e877d5d062530aae4061074d864243f (diff) |
tools lib traceevent: Print event name when show warning if possible
It's sometimes useful to know where the parse failure was occurred. Add
do_warning_event() macro to see the failing event.
It now shows the messages like below:
$ perf test 5
5: parse events tests : Warning: [kvmmmu:kvm_mmu_get_page] bad op token {
Warning: [kvmmmu:kvm_mmu_sync_page] bad op token {
Warning: [kvmmmu:kvm_mmu_unsync_page] bad op token {
Warning: [kvmmmu:kvm_mmu_prepare_zap_page] bad op token {
Warning: [kvmmmu:fast_page_fault] function is_writable_pte not defined
Warning: [xen:xen_mmu_ptep_modify_prot_commit] function sizeof not defined
Warning: [xen:xen_mmu_ptep_modify_prot_start] function sizeof not defined
Warning: [xen:xen_mmu_set_pgd] function sizeof not defined
Warning: [xen:xen_mmu_set_pud] function sizeof not defined
Warning: [xen:xen_mmu_set_pmd] function sizeof not defined
...
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1395192174-26273-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Diffstat (limited to 'tools/lib/traceevent')
-rw-r--r-- | tools/lib/traceevent/event-parse.c | 103 |
1 files changed, 62 insertions, 41 deletions
diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c index 1587ea392ad6..33803c0b94d6 100644 --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c | |||
@@ -50,6 +50,18 @@ static int show_warning = 1; | |||
50 | warning(fmt, ##__VA_ARGS__); \ | 50 | warning(fmt, ##__VA_ARGS__); \ |
51 | } while (0) | 51 | } while (0) |
52 | 52 | ||
53 | #define do_warning_event(event, fmt, ...) \ | ||
54 | do { \ | ||
55 | if (!show_warning) \ | ||
56 | continue; \ | ||
57 | \ | ||
58 | if (event) \ | ||
59 | warning("[%s:%s] " fmt, event->system, \ | ||
60 | event->name, ##__VA_ARGS__); \ | ||
61 | else \ | ||
62 | warning(fmt, ##__VA_ARGS__); \ | ||
63 | } while (0) | ||
64 | |||
53 | static void init_input_buf(const char *buf, unsigned long long size) | 65 | static void init_input_buf(const char *buf, unsigned long long size) |
54 | { | 66 | { |
55 | input_buf = buf; | 67 | input_buf = buf; |
@@ -1355,7 +1367,7 @@ static int event_read_fields(struct event_format *event, struct format_field **f | |||
1355 | } | 1367 | } |
1356 | 1368 | ||
1357 | if (!field->type) { | 1369 | if (!field->type) { |
1358 | do_warning("%s: no type found", __func__); | 1370 | do_warning_event(event, "%s: no type found", __func__); |
1359 | goto fail; | 1371 | goto fail; |
1360 | } | 1372 | } |
1361 | field->name = last_token; | 1373 | field->name = last_token; |
@@ -1402,7 +1414,7 @@ static int event_read_fields(struct event_format *event, struct format_field **f | |||
1402 | free_token(token); | 1414 | free_token(token); |
1403 | type = read_token(&token); | 1415 | type = read_token(&token); |
1404 | if (type == EVENT_NONE) { | 1416 | if (type == EVENT_NONE) { |
1405 | do_warning("failed to find token"); | 1417 | do_warning_event(event, "failed to find token"); |
1406 | goto fail; | 1418 | goto fail; |
1407 | } | 1419 | } |
1408 | } | 1420 | } |
@@ -1636,7 +1648,7 @@ process_cond(struct event_format *event, struct print_arg *top, char **tok) | |||
1636 | right = alloc_arg(); | 1648 | right = alloc_arg(); |
1637 | 1649 | ||
1638 | if (!arg || !left || !right) { | 1650 | if (!arg || !left || !right) { |
1639 | do_warning("%s: not enough memory!", __func__); | 1651 | do_warning_event(event, "%s: not enough memory!", __func__); |
1640 | /* arg will be freed at out_free */ | 1652 | /* arg will be freed at out_free */ |
1641 | free_arg(left); | 1653 | free_arg(left); |
1642 | free_arg(right); | 1654 | free_arg(right); |
@@ -1686,7 +1698,7 @@ process_array(struct event_format *event, struct print_arg *top, char **tok) | |||
1686 | 1698 | ||
1687 | arg = alloc_arg(); | 1699 | arg = alloc_arg(); |
1688 | if (!arg) { | 1700 | if (!arg) { |
1689 | do_warning("%s: not enough memory!", __func__); | 1701 | do_warning_event(event, "%s: not enough memory!", __func__); |
1690 | /* '*tok' is set to top->op.op. No need to free. */ | 1702 | /* '*tok' is set to top->op.op. No need to free. */ |
1691 | *tok = NULL; | 1703 | *tok = NULL; |
1692 | return EVENT_ERROR; | 1704 | return EVENT_ERROR; |
@@ -1792,7 +1804,7 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok) | |||
1792 | if (arg->type == PRINT_OP && !arg->op.left) { | 1804 | if (arg->type == PRINT_OP && !arg->op.left) { |
1793 | /* handle single op */ | 1805 | /* handle single op */ |
1794 | if (token[1]) { | 1806 | if (token[1]) { |
1795 | do_warning("bad op token %s", token); | 1807 | do_warning_event(event, "bad op token %s", token); |
1796 | goto out_free; | 1808 | goto out_free; |
1797 | } | 1809 | } |
1798 | switch (token[0]) { | 1810 | switch (token[0]) { |
@@ -1802,7 +1814,7 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok) | |||
1802 | case '-': | 1814 | case '-': |
1803 | break; | 1815 | break; |
1804 | default: | 1816 | default: |
1805 | do_warning("bad op token %s", token); | 1817 | do_warning_event(event, "bad op token %s", token); |
1806 | goto out_free; | 1818 | goto out_free; |
1807 | 1819 | ||
1808 | } | 1820 | } |
@@ -1888,7 +1900,7 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok) | |||
1888 | char *new_atom; | 1900 | char *new_atom; |
1889 | 1901 | ||
1890 | if (left->type != PRINT_ATOM) { | 1902 | if (left->type != PRINT_ATOM) { |
1891 | do_warning("bad pointer type"); | 1903 | do_warning_event(event, "bad pointer type"); |
1892 | goto out_free; | 1904 | goto out_free; |
1893 | } | 1905 | } |
1894 | new_atom = realloc(left->atom.atom, | 1906 | new_atom = realloc(left->atom.atom, |
@@ -1930,7 +1942,7 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok) | |||
1930 | type = process_array(event, arg, tok); | 1942 | type = process_array(event, arg, tok); |
1931 | 1943 | ||
1932 | } else { | 1944 | } else { |
1933 | do_warning("unknown op '%s'", token); | 1945 | do_warning_event(event, "unknown op '%s'", token); |
1934 | event->flags |= EVENT_FL_FAILED; | 1946 | event->flags |= EVENT_FL_FAILED; |
1935 | /* the arg is now the left side */ | 1947 | /* the arg is now the left side */ |
1936 | goto out_free; | 1948 | goto out_free; |
@@ -1951,7 +1963,7 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok) | |||
1951 | return type; | 1963 | return type; |
1952 | 1964 | ||
1953 | out_warn_free: | 1965 | out_warn_free: |
1954 | do_warning("%s: not enough memory!", __func__); | 1966 | do_warning_event(event, "%s: not enough memory!", __func__); |
1955 | out_free: | 1967 | out_free: |
1956 | free_token(token); | 1968 | free_token(token); |
1957 | *tok = NULL; | 1969 | *tok = NULL; |
@@ -2385,7 +2397,7 @@ process_flags(struct event_format *event, struct print_arg *arg, char **tok) | |||
2385 | 2397 | ||
2386 | field = alloc_arg(); | 2398 | field = alloc_arg(); |
2387 | if (!field) { | 2399 | if (!field) { |
2388 | do_warning("%s: not enough memory!", __func__); | 2400 | do_warning_event(event, "%s: not enough memory!", __func__); |
2389 | goto out_free; | 2401 | goto out_free; |
2390 | } | 2402 | } |
2391 | 2403 | ||
@@ -2438,7 +2450,7 @@ process_symbols(struct event_format *event, struct print_arg *arg, char **tok) | |||
2438 | 2450 | ||
2439 | field = alloc_arg(); | 2451 | field = alloc_arg(); |
2440 | if (!field) { | 2452 | if (!field) { |
2441 | do_warning("%s: not enough memory!", __func__); | 2453 | do_warning_event(event, "%s: not enough memory!", __func__); |
2442 | goto out_free; | 2454 | goto out_free; |
2443 | } | 2455 | } |
2444 | 2456 | ||
@@ -2477,7 +2489,7 @@ process_hex(struct event_format *event, struct print_arg *arg, char **tok) | |||
2477 | 2489 | ||
2478 | field = alloc_arg(); | 2490 | field = alloc_arg(); |
2479 | if (!field) { | 2491 | if (!field) { |
2480 | do_warning("%s: not enough memory!", __func__); | 2492 | do_warning_event(event, "%s: not enough memory!", __func__); |
2481 | goto out_free; | 2493 | goto out_free; |
2482 | } | 2494 | } |
2483 | 2495 | ||
@@ -2492,7 +2504,7 @@ process_hex(struct event_format *event, struct print_arg *arg, char **tok) | |||
2492 | 2504 | ||
2493 | field = alloc_arg(); | 2505 | field = alloc_arg(); |
2494 | if (!field) { | 2506 | if (!field) { |
2495 | do_warning("%s: not enough memory!", __func__); | 2507 | do_warning_event(event, "%s: not enough memory!", __func__); |
2496 | *tok = NULL; | 2508 | *tok = NULL; |
2497 | return EVENT_ERROR; | 2509 | return EVENT_ERROR; |
2498 | } | 2510 | } |
@@ -2555,7 +2567,7 @@ process_dynamic_array(struct event_format *event, struct print_arg *arg, char ** | |||
2555 | free_token(token); | 2567 | free_token(token); |
2556 | arg = alloc_arg(); | 2568 | arg = alloc_arg(); |
2557 | if (!arg) { | 2569 | if (!arg) { |
2558 | do_warning("%s: not enough memory!", __func__); | 2570 | do_warning_event(event, "%s: not enough memory!", __func__); |
2559 | *tok = NULL; | 2571 | *tok = NULL; |
2560 | return EVENT_ERROR; | 2572 | return EVENT_ERROR; |
2561 | } | 2573 | } |
@@ -2614,13 +2626,14 @@ process_paren(struct event_format *event, struct print_arg *arg, char **tok) | |||
2614 | 2626 | ||
2615 | /* prevous must be an atom */ | 2627 | /* prevous must be an atom */ |
2616 | if (arg->type != PRINT_ATOM) { | 2628 | if (arg->type != PRINT_ATOM) { |
2617 | do_warning("previous needed to be PRINT_ATOM"); | 2629 | do_warning_event(event, "previous needed to be PRINT_ATOM"); |
2618 | goto out_free; | 2630 | goto out_free; |
2619 | } | 2631 | } |
2620 | 2632 | ||
2621 | item_arg = alloc_arg(); | 2633 | item_arg = alloc_arg(); |
2622 | if (!item_arg) { | 2634 | if (!item_arg) { |
2623 | do_warning("%s: not enough memory!", __func__); | 2635 | do_warning_event(event, "%s: not enough memory!", |
2636 | __func__); | ||
2624 | goto out_free; | 2637 | goto out_free; |
2625 | } | 2638 | } |
2626 | 2639 | ||
@@ -2721,7 +2734,8 @@ process_func_handler(struct event_format *event, struct pevent_function_handler | |||
2721 | for (i = 0; i < func->nr_args; i++) { | 2734 | for (i = 0; i < func->nr_args; i++) { |
2722 | farg = alloc_arg(); | 2735 | farg = alloc_arg(); |
2723 | if (!farg) { | 2736 | if (!farg) { |
2724 | do_warning("%s: not enough memory!", __func__); | 2737 | do_warning_event(event, "%s: not enough memory!", |
2738 | __func__); | ||
2725 | return EVENT_ERROR; | 2739 | return EVENT_ERROR; |
2726 | } | 2740 | } |
2727 | 2741 | ||
@@ -2792,7 +2806,7 @@ process_function(struct event_format *event, struct print_arg *arg, | |||
2792 | return process_func_handler(event, func, arg, tok); | 2806 | return process_func_handler(event, func, arg, tok); |
2793 | } | 2807 | } |
2794 | 2808 | ||
2795 | do_warning("function %s not defined", token); | 2809 | do_warning_event(event, "function %s not defined", token); |
2796 | free_token(token); | 2810 | free_token(token); |
2797 | return EVENT_ERROR; | 2811 | return EVENT_ERROR; |
2798 | } | 2812 | } |
@@ -2878,7 +2892,7 @@ process_arg_token(struct event_format *event, struct print_arg *arg, | |||
2878 | 2892 | ||
2879 | case EVENT_ERROR ... EVENT_NEWLINE: | 2893 | case EVENT_ERROR ... EVENT_NEWLINE: |
2880 | default: | 2894 | default: |
2881 | do_warning("unexpected type %d", type); | 2895 | do_warning_event(event, "unexpected type %d", type); |
2882 | return EVENT_ERROR; | 2896 | return EVENT_ERROR; |
2883 | } | 2897 | } |
2884 | *tok = token; | 2898 | *tok = token; |
@@ -2901,7 +2915,8 @@ static int event_read_print_args(struct event_format *event, struct print_arg ** | |||
2901 | 2915 | ||
2902 | arg = alloc_arg(); | 2916 | arg = alloc_arg(); |
2903 | if (!arg) { | 2917 | if (!arg) { |
2904 | do_warning("%s: not enough memory!", __func__); | 2918 | do_warning_event(event, "%s: not enough memory!", |
2919 | __func__); | ||
2905 | return -1; | 2920 | return -1; |
2906 | } | 2921 | } |
2907 | 2922 | ||
@@ -3481,11 +3496,12 @@ eval_num_arg(void *data, int size, struct event_format *event, struct print_arg | |||
3481 | return val; | 3496 | return val; |
3482 | 3497 | ||
3483 | out_warning_op: | 3498 | out_warning_op: |
3484 | do_warning("%s: unknown op '%s'", __func__, arg->op.op); | 3499 | do_warning_event(event, "%s: unknown op '%s'", __func__, arg->op.op); |
3485 | return 0; | 3500 | return 0; |
3486 | 3501 | ||
3487 | out_warning_field: | 3502 | out_warning_field: |
3488 | do_warning("%s: field %s not found", __func__, arg->field.name); | 3503 | do_warning_event(event, "%s: field %s not found", |
3504 | __func__, arg->field.name); | ||
3489 | return 0; | 3505 | return 0; |
3490 | } | 3506 | } |
3491 | 3507 | ||
@@ -3591,7 +3607,8 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, | |||
3591 | } | 3607 | } |
3592 | str = malloc(len + 1); | 3608 | str = malloc(len + 1); |
3593 | if (!str) { | 3609 | if (!str) { |
3594 | do_warning("%s: not enough memory!", __func__); | 3610 | do_warning_event(event, "%s: not enough memory!", |
3611 | __func__); | ||
3595 | return; | 3612 | return; |
3596 | } | 3613 | } |
3597 | memcpy(str, data + field->offset, len); | 3614 | memcpy(str, data + field->offset, len); |
@@ -3697,7 +3714,8 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, | |||
3697 | return; | 3714 | return; |
3698 | 3715 | ||
3699 | out_warning_field: | 3716 | out_warning_field: |
3700 | do_warning("%s: field %s not found", __func__, arg->field.name); | 3717 | do_warning_event(event, "%s: field %s not found", |
3718 | __func__, arg->field.name); | ||
3701 | } | 3719 | } |
3702 | 3720 | ||
3703 | static unsigned long long | 3721 | static unsigned long long |
@@ -3742,14 +3760,16 @@ process_defined_func(struct trace_seq *s, void *data, int size, | |||
3742 | trace_seq_terminate(&str); | 3760 | trace_seq_terminate(&str); |
3743 | string = malloc(sizeof(*string)); | 3761 | string = malloc(sizeof(*string)); |
3744 | if (!string) { | 3762 | if (!string) { |
3745 | do_warning("%s(%d): malloc str", __func__, __LINE__); | 3763 | do_warning_event(event, "%s(%d): malloc str", |
3764 | __func__, __LINE__); | ||
3746 | goto out_free; | 3765 | goto out_free; |
3747 | } | 3766 | } |
3748 | string->next = strings; | 3767 | string->next = strings; |
3749 | string->str = strdup(str.buffer); | 3768 | string->str = strdup(str.buffer); |
3750 | if (!string->str) { | 3769 | if (!string->str) { |
3751 | free(string); | 3770 | free(string); |
3752 | do_warning("%s(%d): malloc str", __func__, __LINE__); | 3771 | do_warning_event(event, "%s(%d): malloc str", |
3772 | __func__, __LINE__); | ||
3753 | goto out_free; | 3773 | goto out_free; |
3754 | } | 3774 | } |
3755 | args[i] = (uintptr_t)string->str; | 3775 | args[i] = (uintptr_t)string->str; |
@@ -3761,7 +3781,7 @@ process_defined_func(struct trace_seq *s, void *data, int size, | |||
3761 | * Something went totally wrong, this is not | 3781 | * Something went totally wrong, this is not |
3762 | * an input error, something in this code broke. | 3782 | * an input error, something in this code broke. |
3763 | */ | 3783 | */ |
3764 | do_warning("Unexpected end of arguments\n"); | 3784 | do_warning_event(event, "Unexpected end of arguments\n"); |
3765 | goto out_free; | 3785 | goto out_free; |
3766 | } | 3786 | } |
3767 | farg = farg->next; | 3787 | farg = farg->next; |
@@ -3811,12 +3831,12 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3811 | if (!field) { | 3831 | if (!field) { |
3812 | field = pevent_find_field(event, "buf"); | 3832 | field = pevent_find_field(event, "buf"); |
3813 | if (!field) { | 3833 | if (!field) { |
3814 | do_warning("can't find buffer field for binary printk"); | 3834 | do_warning_event(event, "can't find buffer field for binary printk"); |
3815 | return NULL; | 3835 | return NULL; |
3816 | } | 3836 | } |
3817 | ip_field = pevent_find_field(event, "ip"); | 3837 | ip_field = pevent_find_field(event, "ip"); |
3818 | if (!ip_field) { | 3838 | if (!ip_field) { |
3819 | do_warning("can't find ip field for binary printk"); | 3839 | do_warning_event(event, "can't find ip field for binary printk"); |
3820 | return NULL; | 3840 | return NULL; |
3821 | } | 3841 | } |
3822 | pevent->bprint_buf_field = field; | 3842 | pevent->bprint_buf_field = field; |
@@ -3830,7 +3850,8 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3830 | */ | 3850 | */ |
3831 | args = alloc_arg(); | 3851 | args = alloc_arg(); |
3832 | if (!args) { | 3852 | if (!args) { |
3833 | do_warning("%s(%d): not enough memory!", __func__, __LINE__); | 3853 | do_warning_event(event, "%s(%d): not enough memory!", |
3854 | __func__, __LINE__); | ||
3834 | return NULL; | 3855 | return NULL; |
3835 | } | 3856 | } |
3836 | arg = args; | 3857 | arg = args; |
@@ -3896,7 +3917,7 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3896 | bptr += vsize; | 3917 | bptr += vsize; |
3897 | arg = alloc_arg(); | 3918 | arg = alloc_arg(); |
3898 | if (!arg) { | 3919 | if (!arg) { |
3899 | do_warning("%s(%d): not enough memory!", | 3920 | do_warning_event(event, "%s(%d): not enough memory!", |
3900 | __func__, __LINE__); | 3921 | __func__, __LINE__); |
3901 | goto out_free; | 3922 | goto out_free; |
3902 | } | 3923 | } |
@@ -3919,7 +3940,7 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3919 | case 's': | 3940 | case 's': |
3920 | arg = alloc_arg(); | 3941 | arg = alloc_arg(); |
3921 | if (!arg) { | 3942 | if (!arg) { |
3922 | do_warning("%s(%d): not enough memory!", | 3943 | do_warning_event(event, "%s(%d): not enough memory!", |
3923 | __func__, __LINE__); | 3944 | __func__, __LINE__); |
3924 | goto out_free; | 3945 | goto out_free; |
3925 | } | 3946 | } |
@@ -3959,7 +3980,7 @@ get_bprint_format(void *data, int size __maybe_unused, | |||
3959 | if (!field) { | 3980 | if (!field) { |
3960 | field = pevent_find_field(event, "fmt"); | 3981 | field = pevent_find_field(event, "fmt"); |
3961 | if (!field) { | 3982 | if (!field) { |
3962 | do_warning("can't find format field for binary printk"); | 3983 | do_warning_event(event, "can't find format field for binary printk"); |
3963 | return NULL; | 3984 | return NULL; |
3964 | } | 3985 | } |
3965 | pevent->bprint_fmt_field = field; | 3986 | pevent->bprint_fmt_field = field; |
@@ -4003,8 +4024,8 @@ static void print_mac_arg(struct trace_seq *s, int mac, void *data, int size, | |||
4003 | arg->field.field = | 4024 | arg->field.field = |
4004 | pevent_find_any_field(event, arg->field.name); | 4025 | pevent_find_any_field(event, arg->field.name); |
4005 | if (!arg->field.field) { | 4026 | if (!arg->field.field) { |
4006 | do_warning("%s: field %s not found", | 4027 | do_warning_event(event, "%s: field %s not found", |
4007 | __func__, arg->field.name); | 4028 | __func__, arg->field.name); |
4008 | return; | 4029 | return; |
4009 | } | 4030 | } |
4010 | } | 4031 | } |
@@ -4176,7 +4197,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
4176 | case '*': | 4197 | case '*': |
4177 | /* The argument is the length. */ | 4198 | /* The argument is the length. */ |
4178 | if (!arg) { | 4199 | if (!arg) { |
4179 | do_warning("no argument match"); | 4200 | do_warning_event(event, "no argument match"); |
4180 | event->flags |= EVENT_FL_FAILED; | 4201 | event->flags |= EVENT_FL_FAILED; |
4181 | goto out_failed; | 4202 | goto out_failed; |
4182 | } | 4203 | } |
@@ -4213,7 +4234,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
4213 | case 'X': | 4234 | case 'X': |
4214 | case 'u': | 4235 | case 'u': |
4215 | if (!arg) { | 4236 | if (!arg) { |
4216 | do_warning("no argument match"); | 4237 | do_warning_event(event, "no argument match"); |
4217 | event->flags |= EVENT_FL_FAILED; | 4238 | event->flags |= EVENT_FL_FAILED; |
4218 | goto out_failed; | 4239 | goto out_failed; |
4219 | } | 4240 | } |
@@ -4223,7 +4244,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
4223 | 4244 | ||
4224 | /* should never happen */ | 4245 | /* should never happen */ |
4225 | if (len > 31) { | 4246 | if (len > 31) { |
4226 | do_warning("bad format!"); | 4247 | do_warning_event(event, "bad format!"); |
4227 | event->flags |= EVENT_FL_FAILED; | 4248 | event->flags |= EVENT_FL_FAILED; |
4228 | len = 31; | 4249 | len = 31; |
4229 | } | 4250 | } |
@@ -4290,13 +4311,13 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
4290 | trace_seq_printf(s, format, (long long)val); | 4311 | trace_seq_printf(s, format, (long long)val); |
4291 | break; | 4312 | break; |
4292 | default: | 4313 | default: |
4293 | do_warning("bad count (%d)", ls); | 4314 | do_warning_event(event, "bad count (%d)", ls); |
4294 | event->flags |= EVENT_FL_FAILED; | 4315 | event->flags |= EVENT_FL_FAILED; |
4295 | } | 4316 | } |
4296 | break; | 4317 | break; |
4297 | case 's': | 4318 | case 's': |
4298 | if (!arg) { | 4319 | if (!arg) { |
4299 | do_warning("no matching argument"); | 4320 | do_warning_event(event, "no matching argument"); |
4300 | event->flags |= EVENT_FL_FAILED; | 4321 | event->flags |= EVENT_FL_FAILED; |
4301 | goto out_failed; | 4322 | goto out_failed; |
4302 | } | 4323 | } |
@@ -4306,7 +4327,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
4306 | 4327 | ||
4307 | /* should never happen */ | 4328 | /* should never happen */ |
4308 | if (len > 31) { | 4329 | if (len > 31) { |
4309 | do_warning("bad format!"); | 4330 | do_warning_event(event, "bad format!"); |
4310 | event->flags |= EVENT_FL_FAILED; | 4331 | event->flags |= EVENT_FL_FAILED; |
4311 | len = 31; | 4332 | len = 31; |
4312 | } | 4333 | } |