diff options
author | Leonard Crestez <leonard.crestez@nxp.com> | 2017-07-12 17:34:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-12 19:26:01 -0400 |
commit | c454756f47277b651ad41a5a163499294529e35d (patch) | |
tree | 8df6e20f625e03d3548bdb6ee39fe26eeb67c03d /scripts/gdb/linux/dmesg.py | |
parent | 821f74402a4c67de63cb6bab5bae7c7a3b298ac2 (diff) |
scripts/gdb: lx-dmesg: cast log_buf to void* for addr fetch
In some cases it is possible for the str() conversion here to throw
encoding errors because log_buf might not point to valid ascii. For
example:
(gdb) python print str(gdb.parse_and_eval("log_buf"))
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0303' in
position 24: ordinal not in range(128)
Avoid this by explicitly casting to (void *) inside the gdb expression.
Link: http://lkml.kernel.org/r/ba6f85dbb02ca980ebd0e2399b0649423399b565.1498481469.git.leonard.crestez@nxp.com
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Kieran Bingham <kieran@ksquared.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/gdb/linux/dmesg.py')
-rw-r--r-- | scripts/gdb/linux/dmesg.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/gdb/linux/dmesg.py b/scripts/gdb/linux/dmesg.py index 5afd1098e33a..f5a030333dfd 100644 --- a/scripts/gdb/linux/dmesg.py +++ b/scripts/gdb/linux/dmesg.py | |||
@@ -24,7 +24,7 @@ class LxDmesg(gdb.Command): | |||
24 | 24 | ||
25 | def invoke(self, arg, from_tty): | 25 | def invoke(self, arg, from_tty): |
26 | log_buf_addr = int(str(gdb.parse_and_eval( | 26 | log_buf_addr = int(str(gdb.parse_and_eval( |
27 | "'printk.c'::log_buf")).split()[0], 16) | 27 | "(void *)'printk.c'::log_buf")).split()[0], 16) |
28 | log_first_idx = int(gdb.parse_and_eval("'printk.c'::log_first_idx")) | 28 | log_first_idx = int(gdb.parse_and_eval("'printk.c'::log_first_idx")) |
29 | log_next_idx = int(gdb.parse_and_eval("'printk.c'::log_next_idx")) | 29 | log_next_idx = int(gdb.parse_and_eval("'printk.c'::log_next_idx")) |
30 | log_buf_len = int(gdb.parse_and_eval("'printk.c'::log_buf_len")) | 30 | log_buf_len = int(gdb.parse_and_eval("'printk.c'::log_buf_len")) |