Skip to contentSkip to conversation

scripts/gdb: Updates for 4.5

PATCH New Jan Kiszka 1 participant 3 messages Jan 11, 2016 GDB kernel debugging helper scripts

lore
Share & tools
lore

Jan Kiszka

author maintainer
#0 lore raw

cover scripts/gdb: Updates for 4.5

Hi Andrew,

please include the following enhancements for the gdb scripts in your queue.

Jan

CC Kieran Bingham <[email protected]>

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

 scripts/gdb/linux/proc.py  | 41 +++++++++++++++++++++++++++++++++++++++++
 scripts/gdb/vmlinux-gdb.py |  1 +
 2 files changed, 42 insertions(+)
 create mode 100644 scripts/gdb/linux/proc.py
Signature · 1 line
2.1.4
author maintainer
#1 lore raw

PATCH 1/2 scripts/gdb: Add version command

From: Kieran Bingham <[email protected]>

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.

[Jan: remove blank line from help output and fix pep8 warning]
---
 scripts/gdb/linux/proc.py  | 28 ++++++++++++++++++++++++++++
 scripts/gdb/vmlinux-gdb.py |  1 +
 2 files changed, 29 insertions(+)
 create mode 100644 scripts/gdb/linux/proc.py
scripts/gdb/linux/proc.py new file +28 -0
new file mode 100644
index 0000000..8a733dd
@@ -0,0 +1,28 @@
+#
+# gdb helper commands and functions for Linux kernel debugging
+#
+#  Kernel proc information reader
+#
+# Copyright (c) 2016 Linaro Ltd
+#
+# Authors:
+#  Kieran Bingham <[email protected]>
+#
+# 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()
scripts/gdb/vmlinux-gdb.py +1 -0
index ce82bf5..d5943ec 100644
@@ -29,3 +29,4 @@ else:
     import linux.tasks
     import linux.cpus
     import linux.lists
+    import linux.proc
Signature · 1 line
2.1.4
author maintainer
#2 lore raw

PATCH 2/2 scripts/gdb: Add cmdline reader command

In reply to Jan Kiszka

From: Kieran Bingham <[email protected]>

lx-cmdline Report the Linux Commandline used in the current kernel

[Jan: remove blank line from help output and fix pep8 warning]
---
 scripts/gdb/linux/proc.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)
scripts/gdb/linux/proc.py +13 -0
index 8a733dd..6e6709c 100644
@@ -14,6 +14,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"""
Signature · 1 line
2.1.4