aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <rostedt@goodmis.org>2009-12-22 22:50:05 -0500
committerSteven Rostedt <rostedt@goodmis.org>2009-12-22 22:50:05 -0500
commit507200e51aed13cb11fbe54eaaee6f4bbe4aaade (patch)
treed17c082ecde9ffe41c8eb082b8dfa676bd432daa
parent9a29217ec2a13685127d8105e44feb461cc67c56 (diff)
parse-events: Handle 32 bit reading 64 bit print format
A 32 bit machine does not handle %p and %lu well if the trace is 64 bits. That is, it translates those two into 32 bit output instead of doing 64 bit. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--parse-events.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/parse-events.c b/parse-events.c
index 0600973..4ba7df9 100644
--- a/parse-events.c
+++ b/parse-events.c
@@ -3067,6 +3067,17 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event
3067 break; 3067 break;
3068 } 3068 }
3069 } 3069 }
3070 if (pevent->long_size == 8 && ls) {
3071 char *p;
3072
3073 ls = 2;
3074 /* make %l into %ll */
3075 p = strchr(format, 'l');
3076 if (p)
3077 memmove(p+1, p, strlen(p)+1);
3078 else if (strcmp(format, "%p") == 0)
3079 strcpy(format, "0x%llx");
3080 }
3070 switch (ls) { 3081 switch (ls) {
3071 case 0: 3082 case 0:
3072 trace_seq_printf(s, format, (int)val); 3083 trace_seq_printf(s, format, (int)val);