Re: [PATCH] scripts/gdb: decode bytestream on dmesg for Python3

From: Dom Cote
Date: Thu May 05 2016 - 10:21:01 EST


Looks good, b'<text>' marker doesn't appear anymore.
Tested for python 2.7 and 3.4

Acked-by: Dom Cote <buzdelabuz2@xxxxxxxxx>
Tested-by: Dom Cote <buzdelabuz2@xxxxxxxxx>

Regards

On Wed, May 4, 2016 at 8:37 AM, Kieran Bingham <kieran@xxxxxxxxxxx> wrote:
> The recent fixes to lx-dmesg, now allow the command to print
> successfully on Python3, however the python interpreter wraps the bytes
> for each line with a b'<text>' marker.
>
> To remove this, we need to decode the line, where .decode() will default
> to 'UTF-8'
>
> Signed-off-by: Kieran Bingham <kieran@xxxxxxxxxxx>
> ---
> scripts/gdb/linux/dmesg.py | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/gdb/linux/dmesg.py b/scripts/gdb/linux/dmesg.py
> index 04d6719067f2..f9b92ece7834 100644
> --- a/scripts/gdb/linux/dmesg.py
> +++ b/scripts/gdb/linux/dmesg.py
> @@ -51,10 +51,10 @@ class LxDmesg(gdb.Command):
> continue
>
> text_len = utils.read_u16(log_buf[pos + 10:pos + 12])
> - text = log_buf[pos + 16:pos + 16 + text_len]
> + text = log_buf[pos + 16:pos + 16 + text_len].decode()
> time_stamp = utils.read_u64(log_buf[pos:pos + 8])
>
> - for line in memoryview(text).tobytes().splitlines():
> + for line in text.splitlines():
> gdb.write("[{time:12.6f}] {line}\n".format(
> time=time_stamp / 1000000000.0,
> line=line))
> --
> 2.5.0
>