Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1303566 > unrolled thread

[PATCH 0/2] Linux Kernel Debugger GDB extensions

Started byKieran Bingham <kieran.bingham@linaro.org>
First post2016-01-07 14:00 +0100
Last post2016-01-09 17:30 +0100
Articles 5 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/2] Linux Kernel Debugger GDB extensions Kieran Bingham <kieran.bingham@linaro.org> - 2016-01-07 14:00 +0100
    [PATCH 2/2] scripts/gdb: Add cmdline reader command Kieran Bingham <kieran.bingham@linaro.org> - 2016-01-07 14:00 +0100
    [PATCH 1/2] scripts/gdb: Add version command Kieran Bingham <kieran.bingham@linaro.org> - 2016-01-07 14:00 +0100
      Re: [PATCH 1/2] scripts/gdb: Add version command Jan Kiszka <jan.kiszka@web.de> - 2016-01-09 17:10 +0100
        Re: [PATCH 1/2] scripts/gdb: Add version command Kieran Bingham <kieran.bingham@linaro.org> - 2016-01-09 17:30 +0100

#1303566 — [PATCH 0/2] Linux Kernel Debugger GDB extensions

FromKieran Bingham <kieran.bingham@linaro.org>
Date2016-01-07 14:00 +0100
Subject[PATCH 0/2] Linux Kernel Debugger GDB extensions
Message-ID<qOiky-8ew-5@gated-at.bofh.it>
ST Microelectronics provides a set of debugging tools, customised to attach
and debug a running (or crashed) linux kernel based on GDB. As part of working
towards providing this functionality upstream, a number of commands can be
written using the new CONFIG_GDB_SCRIPTS facilities.

Here, as a means to introducing the work which is ongoing, are two initial
(simple) commands which allow the user to identify the kernel version and
command line used to boot.

 lx-cmdline  Report the Linux Commandline used in the current kernel.
 lx-version  Report the Linux Version of the current kernel.

Based on the existing LKD project, follow up work will aim to provide similar
facilities for:
	/proc/iomem
	/proc/ioports
	/proc/mounts
	/proc/interrupts
	/proc/meminfo

The larger scale project also aims to provide thread integration into GDB,
and userspace frame walking where possible.

Kieran Bingham (2):
  scripts/gdb: Add version command
  scripts/gdb: Add cmdline reader command

 scripts/gdb/linux/proc.py  | 40 ++++++++++++++++++++++++++++++++++++++++
 scripts/gdb/vmlinux-gdb.py |  1 +
 2 files changed, 41 insertions(+)
 create mode 100644 scripts/gdb/linux/proc.py

-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1303568 — [PATCH 2/2] scripts/gdb: Add cmdline reader command

FromKieran Bingham <kieran.bingham@linaro.org>
Date2016-01-07 14:00 +0100
Subject[PATCH 2/2] scripts/gdb: Add cmdline reader command
Message-ID<qOikz-8ew-17@gated-at.bofh.it>
In reply to#1303566
lx-cmdline  Report the Linux Commandline used in the current kernel

Signed-off-by: Kieran Bingham <kieran.bingham@linaro.org>
---
 scripts/gdb/linux/proc.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
index 7a2afe60416a..4063ef65e160 100644
--- a/scripts/gdb/linux/proc.py
+++ b/scripts/gdb/linux/proc.py
@@ -13,6 +13,19 @@
 
 import gdb
 
+class LxCmdLine(gdb.Command):
+    """ Report the Linux Commandline used in the current kernel.
+        Equivalent to cat /proc/cmdline on a running target
+    """
+
+    def __init__(self):
+        super(LxCmdLine, self).__init__("lx-cmdline", gdb.COMMAND_DATA)
+
+    def invoke(self, arg, from_tty):
+        gdb.write(gdb.parse_and_eval("saved_command_line").string() + "\n")
+
+LxCmdLine()
+
 class LxVersion(gdb.Command):
     """ Report the Linux Version of the current kernel.
         Equivalent to cat /proc/version on a running target
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1303571 — [PATCH 1/2] scripts/gdb: Add version command

FromKieran Bingham <kieran.bingham@linaro.org>
Date2016-01-07 14:00 +0100
Subject[PATCH 1/2] scripts/gdb: Add version command
Message-ID<qOikz-8ew-27@gated-at.bofh.it>
In reply to#1303566
lx-version  Report the Linux Version of the current kernel.

Add a command to identify the version specified by the banner in the
debugged kernel.

This lets the user identify the kernel of the running kernel, and will
let later scripts compare the banner of the attached kernel against the
banner in the vmlinux symbols files to verify that the files are correct.

Signed-off-by: Kieran Bingham <kieran.bingham@linaro.org>
---
 scripts/gdb/linux/proc.py  | 27 +++++++++++++++++++++++++++
 scripts/gdb/vmlinux-gdb.py |  1 +
 2 files changed, 28 insertions(+)
 create mode 100644 scripts/gdb/linux/proc.py

diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
new file mode 100644
index 000000000000..7a2afe60416a
--- /dev/null
+++ b/scripts/gdb/linux/proc.py
@@ -0,0 +1,27 @@
+#
+# gdb helper commands and functions for Linux kernel debugging
+#
+#  Kernel proc information reader
+#
+# Copyright (c) 2016 Linaro Ltd
+#
+# Authors:
+#  Kieran Bingham <kieran.bingham@linaro.org>
+#
+# This work is licensed under the terms of the GNU GPL version 2.
+#
+
+import gdb
+
+class LxVersion(gdb.Command):
+    """ Report the Linux Version of the current kernel.
+        Equivalent to cat /proc/version on a running target
+    """
+    def __init__(self):
+        super(LxVersion, self).__init__("lx-version", gdb.COMMAND_DATA)
+
+    def invoke(self, arg, from_tty):
+        # linux_banner should contain a newline
+        gdb.write(gdb.parse_and_eval("linux_banner").string())
+
+LxVersion()
diff --git a/scripts/gdb/vmlinux-gdb.py b/scripts/gdb/vmlinux-gdb.py
index ce82bf5c3943..d5943eca19cd 100644
--- a/scripts/gdb/vmlinux-gdb.py
+++ b/scripts/gdb/vmlinux-gdb.py
@@ -29,3 +29,4 @@ else:
     import linux.tasks
     import linux.cpus
     import linux.lists
+    import linux.proc
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1305251 — Re: [PATCH 1/2] scripts/gdb: Add version command

FromJan Kiszka <jan.kiszka@web.de>
Date2016-01-09 17:10 +0100
SubjectRe: [PATCH 1/2] scripts/gdb: Add version command
Message-ID<qP4fw-7W6-17@gated-at.bofh.it>
In reply to#1303571

[Multipart message — attachments visible in raw view] — view raw

On 2016-01-07 13:52, Kieran Bingham wrote:
> lx-version  Report the Linux Version of the current kernel.
> 
> Add a command to identify the version specified by the banner in the
> debugged kernel.
> 
> This lets the user identify the kernel of the running kernel, and will
> let later scripts compare the banner of the attached kernel against the
> banner in the vmlinux symbols files to verify that the files are correct.
> 
> Signed-off-by: Kieran Bingham <kieran.bingham@linaro.org>
> ---
>  scripts/gdb/linux/proc.py  | 27 +++++++++++++++++++++++++++
>  scripts/gdb/vmlinux-gdb.py |  1 +
>  2 files changed, 28 insertions(+)
>  create mode 100644 scripts/gdb/linux/proc.py
> 
> diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
> new file mode 100644
> index 000000000000..7a2afe60416a
> --- /dev/null
> +++ b/scripts/gdb/linux/proc.py
> @@ -0,0 +1,27 @@
> +#
> +# gdb helper commands and functions for Linux kernel debugging
> +#
> +#  Kernel proc information reader
> +#
> +# Copyright (c) 2016 Linaro Ltd
> +#
> +# Authors:
> +#  Kieran Bingham <kieran.bingham@linaro.org>
> +#
> +# This work is licensed under the terms of the GNU GPL version 2.
> +#
> +
> +import gdb
> +

pep8 says:

scripts/gdb/linux/proc.py:16:1: E302 expected 2 blank lines, found 1

> +class LxVersion(gdb.Command):
> +    """ Report the Linux Version of the current kernel.
> +        Equivalent to cat /proc/version on a running target
> +    """

Minor thing, but for the sake of consistency: Moving the """ into a new
line gives an additional empty line at the end of the help output. Other
commands, also gdb built-ins, don't do this.

> +    def __init__(self):
> +        super(LxVersion, self).__init__("lx-version", gdb.COMMAND_DATA)
> +
> +    def invoke(self, arg, from_tty):
> +        # linux_banner should contain a newline
> +        gdb.write(gdb.parse_and_eval("linux_banner").string())
> +
> +LxVersion()
> diff --git a/scripts/gdb/vmlinux-gdb.py b/scripts/gdb/vmlinux-gdb.py
> index ce82bf5c3943..d5943eca19cd 100644
> --- a/scripts/gdb/vmlinux-gdb.py
> +++ b/scripts/gdb/vmlinux-gdb.py
> @@ -29,3 +29,4 @@ else:
>      import linux.tasks
>      import linux.cpus
>      import linux.lists
> +    import linux.proc
> 

Two options: I can adjust these (and the corresponding issues in patch
2) myself before sending out a merge request to Andrew. Or, if you have
more in your queue, I'll wait for a potential longer v2 round. Just let
me know.

Thanks,
Jan

[toc] | [prev] | [next] | [standalone]


#1305274 — Re: [PATCH 1/2] scripts/gdb: Add version command

FromKieran Bingham <kieran.bingham@linaro.org>
Date2016-01-09 17:30 +0100
SubjectRe: [PATCH 1/2] scripts/gdb: Add version command
Message-ID<qP4yV-83p-53@gated-at.bofh.it>
In reply to#1305251
Hi Jan

On 09/01/16 16:02, Jan Kiszka wrote:
> On 2016-01-07 13:52, Kieran Bingham wrote:
>> lx-version  Report the Linux Version of the current kernel.
>>
>> Add a command to identify the version specified by the banner in the
>> debugged kernel.
>>
>> This lets the user identify the kernel of the running kernel, and will
>> let later scripts compare the banner of the attached kernel against the
>> banner in the vmlinux symbols files to verify that the files are correct.
>>
>> Signed-off-by: Kieran Bingham <kieran.bingham@linaro.org>
>> ---
>>  scripts/gdb/linux/proc.py  | 27 +++++++++++++++++++++++++++
>>  scripts/gdb/vmlinux-gdb.py |  1 +
>>  2 files changed, 28 insertions(+)
>>  create mode 100644 scripts/gdb/linux/proc.py
>>
>> diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
>> new file mode 100644
>> index 000000000000..7a2afe60416a
>> --- /dev/null
>> +++ b/scripts/gdb/linux/proc.py
>> @@ -0,0 +1,27 @@
>> +#
>> +# gdb helper commands and functions for Linux kernel debugging
>> +#
>> +#  Kernel proc information reader
>> +#
>> +# Copyright (c) 2016 Linaro Ltd
>> +#
>> +# Authors:
>> +#  Kieran Bingham <kieran.bingham@linaro.org>
>> +#
>> +# This work is licensed under the terms of the GNU GPL version 2.
>> +#
>> +
>> +import gdb
>> +
> pep8 says:
>
> scripts/gdb/linux/proc.py:16:1: E302 expected 2 blank lines, found 1

My apologies - I should have run those checks before I sent the patches.
I've added it to my checklist, to make sure I do, for any more that I send.

>
>> +class LxVersion(gdb.Command):
>> +    """ Report the Linux Version of the current kernel.
>> +        Equivalent to cat /proc/version on a running target
>> +    """
> Minor thing, but for the sake of consistency: Moving the """ into a new
> line gives an additional empty line at the end of the help output. Other
> commands, also gdb built-ins, don't do this.

And, I'll try to make sure I copy the style correctly for any follow-ups!

>
>> +    def __init__(self):
>> +        super(LxVersion, self).__init__("lx-version", gdb.COMMAND_DATA)
>> +
>> +    def invoke(self, arg, from_tty):
>> +        # linux_banner should contain a newline
>> +        gdb.write(gdb.parse_and_eval("linux_banner").string())
>> +
>> +LxVersion()
>> diff --git a/scripts/gdb/vmlinux-gdb.py b/scripts/gdb/vmlinux-gdb.py
>> index ce82bf5c3943..d5943eca19cd 100644
>> --- a/scripts/gdb/vmlinux-gdb.py
>> +++ b/scripts/gdb/vmlinux-gdb.py
>> @@ -29,3 +29,4 @@ else:
>>      import linux.tasks
>>      import linux.cpus
>>      import linux.lists
>> +    import linux.proc
>>
> Two options: I can adjust these (and the corresponding issues in patch
> 2) myself before sending out a merge request to Andrew. Or, if you have
> more in your queue, I'll wait for a potential longer v2 round. Just let
> me know.
>
> Thanks,
> Jan

If you're happy to do the fix-ups that's fine by me.
These two are simple and standalone, so I don't see any point in holding
them back.

--
Regards

Kieran

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web