|
@@ -3505,6 +3505,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
|
|
|
struct pevent *pevent = event->pevent;
|
|
|
struct print_flag_sym *flag;
|
|
|
struct format_field *field;
|
|
|
+ struct printk_map *printk;
|
|
|
unsigned long long val, fval;
|
|
|
unsigned long addr;
|
|
|
char *str;
|
|
@@ -3540,7 +3541,12 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
|
|
|
if (!(field->flags & FIELD_IS_ARRAY) &&
|
|
|
field->size == pevent->long_size) {
|
|
|
addr = *(unsigned long *)(data + field->offset);
|
|
|
- trace_seq_printf(s, "%lx", addr);
|
|
|
+ /* Check if it matches a print format */
|
|
|
+ printk = find_printk(pevent, addr);
|
|
|
+ if (printk)
|
|
|
+ trace_seq_puts(s, printk->printk);
|
|
|
+ else
|
|
|
+ trace_seq_printf(s, "%lx", addr);
|
|
|
break;
|
|
|
}
|
|
|
str = malloc(len + 1);
|