projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
646a6e8
)
tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines
author
Steven Rostedt
<
[email protected]
>
Mon, 16 Nov 2015 22:25:16 +0000
(17:25 -0500)
committer
Arnaldo Carvalho de Melo
<
[email protected]
>
Mon, 23 Nov 2015 22:17:23 +0000
(19:17 -0300)
When a long value is read on 32 bit machines for 64 bit output, the
parsing needs to change "%lu" into "%llu", as the value is read
natively.
Unfortunately, if "%llu" is already there, the code will add another "l"
to it and fail to parse it properly.
Signed-off-by: Steven Rostedt <
[email protected]
>
Acked-by: Namhyung Kim <
[email protected]
>
Cc:
[email protected]
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <
[email protected]
>
tools/lib/traceevent/event-parse.c
patch
|
blob
|
history
diff --git
a/tools/lib/traceevent/event-parse.c
b/tools/lib/traceevent/event-parse.c
index 2a912df6771bf5c6abd880667fbece1dcf1e1005..68276f35e32369da6c9bd7d3204f55693184cf29 100644
(file)
--- a/
tools/lib/traceevent/event-parse.c
+++ b/
tools/lib/traceevent/event-parse.c
@@
-4968,13
+4968,12
@@
static void pretty_print(struct trace_seq *s, void *data, int size, struct event
sizeof(long) != 8) {
char *p;
- ls = 2;
/* make %l into %ll */
- p = strchr(format, 'l');
- if (p)
+ if (ls == 1 && (p = strchr(format, 'l')))
memmove(p+1, p, strlen(p)+1);
else if (strcmp(format, "%p") == 0)
strcpy(format, "0x%llx");
+ ls = 2;
}
switch (ls) {
case -2: