[PATCHv3 00/13] scripts/gdb: Linux awareness debug commands

From: Kieran Bingham
Date: Thu Mar 03 2016 - 06:41:26 EST


Hi Jan,

V3 of the patchset respun. Now finally adding the lx-interrupts command
after I resolved my issues with the Radix Tree parsing.

This command only provides the interrupts that are available generically,
and it seems that the /proc/interrupts function calls into arch specific
layers to add extra information about arch specific interrupts.

I'm not sure what to do about this yet - The values returned appear to be
accurarate - but it's just a subset of the information returned by proc.

lx_thread_info_by_pid has been useful to me while looking at thread
awareness, so I've included it into this patch set now. It makes finding
internal thread information much more convenient.

dentry_name has been moved to the utils module, as I am already using it
in another command, so it's just not appropriate to be in proc.py

The cpu_list mask iterators make calling for cpu in each_online_cpu() read
nicely, and I've left the print_cpus() function in for now as a hidden
helper. It can be used by calling:
python linux.cpus.print_cpus()
to check these generators, which I thought was quite nice - but I didn't
know if it warranted a full command class for this.

For convenience, this patch set submission can be found at
http://git.linaro.org/people/kieran.bingham/linux.git gdb-scripts-2016-03-03-lkml-submission

Patchset Changelog:
v3:
- Radix Tree parser introduced
- cpu_list mask iterators added
- lx-interrupts command implemented
- dentry_name function moved to utils
- lx-meminfo command PEP8 warnings fixed
- lx_thread_info_by_pid introduced

v2:
- Reworked iterators with improved versions from Jeff Mahoney
- Fixed !CONFIG_MODULES and !CONFIG_MMU support
- Improvements on lx-meminfo
- constants.py generated by Kbuild
- IS_BUILTIN facility used to provide LX_CONFIG values

v1:
- Introduced lx-iomem, lx-ioports, lx-mounts, lx-meminfo

Kieran Bingham (13):
scripts/gdb: Provide linux constants
scripts/gdb: Provide kernel list item generators
scripts/gdb: Convert modules usage to lists functions
scripts/gdb: Provide exception catching parser
scripts/gdb: Support !CONFIG_MODULES gracefully
scripts/gdb: Provide a dentry_name VFS path helper
scripts/gdb: Add io resource readers
scripts/gdb: Add mount point list command
scripts/gdb: Add meminfo command
scripts/gdb: Add cpu iterators
scripts/gdb: Add a Radix Tree Parser
scripts/gdb: Add interrupts command
scripts/gdb: Add lx_thread_info_by_pid helper

Kbuild | 10 +
scripts/gdb/linux/Makefile | 12 +-
scripts/gdb/linux/constants.py.in | 93 ++++++++
scripts/gdb/linux/cpus.py | 21 ++
scripts/gdb/linux/lists.py | 20 ++
scripts/gdb/linux/modules.py | 22 +-
scripts/gdb/linux/proc.py | 449 ++++++++++++++++++++++++++++++++++++++
scripts/gdb/linux/radixtree.py | 74 +++++++
scripts/gdb/linux/tasks.py | 19 ++
scripts/gdb/linux/utils.py | 15 ++
scripts/gdb/vmlinux-gdb.py | 2 +
11 files changed, 724 insertions(+), 13 deletions(-)
create mode 100644 scripts/gdb/linux/constants.py.in
create mode 100644 scripts/gdb/linux/radixtree.py

--
2.5.0