[PATCH v10 00/27] Add gdb python scripts as kernel debugging helpers

From: Jan Kiszka
Date: Thu Nov 20 2014 - 12:03:08 EST

Hi Thomas,

as discussed earlier today, I'm sending out a fresh rebase of the gdb
scripts so that you can organize the next steps towards merge. Thanks
for this in advance!

Changes since v9:
- rebase over recent Linux version
- use a generator instead of iterator for task list,
fixes thread-group iteration [Daniel Wagner]
- apply generator scheme on other iterations
- propose myself as maintainer

See http://lkml.indiana.edu/hypermail/linux/kernel/1210.0/01598.html for
the original description and

git://git.kiszka.org/linux.git queues/gdb-scripts

for the latest version.

There is still some issue with gdb >= 7.8 when parsing symbols of kernel
modules, because I didn't deliver those folks the requested core dump of
gdb so far - done now. So up to version 7.7 remains recommended for the
time being.


CC: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
CC: Daniel Wagner <daniel.wagner@xxxxxxxxxxxx>
CC: "David S. Miller" <davem@xxxxxxxxxxxxx>
CC: Fenghua Yu <fenghua.yu@xxxxxxxxx>
Cc: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
CC: Kay Sievers <kay@xxxxxxxx>
CC: linux-doc@xxxxxxxxxxxxxxx
CC: linux-ia64@xxxxxxxxxxxxxxx
Cc: linux-kbuild@xxxxxxxxxxxxxxx
CC: linux-kbuild@xxxxxxxxxxxxxxx
Cc: Michal Marek <mmarek@xxxxxxx>
CC: Michal Marek <mmarek@xxxxxxx>
CC: Pantelis Koukousoulas <pktoss@xxxxxxxxx>
CC: Rob Landley <rob@xxxxxxxxxxx>
CC: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
CC: sparclinux@xxxxxxxxxxxxxxx
CC: Tony Luck <tony.luck@xxxxxxxxx>

Daniel Thompson (1):
scripts/gdb: Ignore byte-compiled python files

Daniel Wagner (1):
scripts/gdb: Use a generator instead of iterator for task list

Jan Kiszka (24):
scripts/gdb: Add infrastructure
scripts/gdb: Add cache for type objects
scripts/gdb: Add container_of helper and convenience function
scripts/gdb: Add module iteration class
scripts/gdb: Add lx-symbols command
module: Do not inline do_init_module
scripts/gdb: Add automatic symbol reloading on module insertion
scripts/gdb: Add internal helper and convenience function to look up a
scripts/gdb: Add get_target_endianness helper
scripts/gdb: Add read_u16/32/64 helpers
scripts/gdb: Add lx-dmesg command
scripts/gdb: Add task iteration class
scripts/gdb: Add helper and convenience function to look up tasks
scripts/gdb: Add is_target_arch helper
scripts/gdb: Add internal helper and convenience function to retrieve
scripts/gdb: Add get_gdbserver_type helper
scripts/gdb: Add internal helper and convenience function for per-cpu
scripts/gdb: Add lx_current convenience function
scripts/gdb: Add class to iterate over CPU masks
scripts/gdb: Add lx-lsmod command
scripts/gdb: Add basic documentation
scripts/gdb: Convert ModuleList to generator function
scripts/gdb: Convert CpuList to generator function
scripts/gdb: Define maintainer

Pantelis Koukousoulas (1):
scripts/gdb: Port to python3 / gdb7.7

.gitignore | 1 +
Documentation/gdb-kernel-debugging.txt | 160 +++++++++++++++++++++++++++++++
Makefile | 6 +-
kernel/module.c | 9 +-
lib/Kconfig.debug | 11 +++
scripts/Makefile | 3 +-
scripts/gdb/Makefile | 1 +
scripts/gdb/linux/.gitignore | 2 +
scripts/gdb/linux/Makefile | 11 +++
scripts/gdb/linux/__init__.py | 0
scripts/gdb/linux/cpus.py | 135 +++++++++++++++++++++++++++
scripts/gdb/linux/dmesg.py | 65 +++++++++++++
scripts/gdb/linux/modules.py | 103 ++++++++++++++++++++
scripts/gdb/linux/symbols.py | 166 +++++++++++++++++++++++++++++++++
scripts/gdb/linux/tasks.py | 100 ++++++++++++++++++++
scripts/gdb/linux/utils.py | 156 +++++++++++++++++++++++++++++++
scripts/gdb/vmlinux-gdb.py | 30 ++++++
18 files changed, 960 insertions(+), 4 deletions(-)
create mode 100644 Documentation/gdb-kernel-debugging.txt
create mode 100644 scripts/gdb/Makefile
create mode 100644 scripts/gdb/linux/.gitignore
create mode 100644 scripts/gdb/linux/Makefile
create mode 100644 scripts/gdb/linux/__init__.py
create mode 100644 scripts/gdb/linux/cpus.py
create mode 100644 scripts/gdb/linux/dmesg.py
create mode 100644 scripts/gdb/linux/modules.py
create mode 100644 scripts/gdb/linux/symbols.py
create mode 100644 scripts/gdb/linux/tasks.py
create mode 100644 scripts/gdb/linux/utils.py
create mode 100644 scripts/gdb/vmlinux-gdb.py


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