diff options
| author | Leonard Crestez <leonard.crestez@nxp.com> | 2017-07-12 14:34:16 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-12 16:26:01 -0700 | 
| 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):      def invoke(self, arg, from_tty):          log_buf_addr = int(str(gdb.parse_and_eval( -            "'printk.c'::log_buf")).split()[0], 16) +            "(void *)'printk.c'::log_buf")).split()[0], 16)          log_first_idx = int(gdb.parse_and_eval("'printk.c'::log_first_idx"))          log_next_idx = int(gdb.parse_and_eval("'printk.c'::log_next_idx"))          log_buf_len = int(gdb.parse_and_eval("'printk.c'::log_buf_len")) | 
