mirror_ubuntu-kernels/scripts/gdb/linux
Florian Rommel 7566b063e9 scripts/gdb: make get_thread_info accept pointers
get_thread_info ($lx_thread_info) only accepted a dereferenced task
parameter.  Passing a pointer to a task_struct (like $lx_per_cpu does with
KGDB) threw an exception.

With this patch, both (dereferenced values and pointers) are accepted.

Before (on x86, KGDB):
>>> p $lx_per_cpu(cpu_info)
Traceback (most recent call last):
  File "./scripts/gdb/linux/cpus.py", line 158, in invoke
    return per_cpu(var_ptr, cpu)
           ^^^^^^^^^^^^^^^^^^^^^
  File "./scripts/gdb/linux/cpus.py", line 42, in per_cpu
    cpu = get_current_cpu()
          ^^^^^^^^^^^^^^^^^
  File "./scripts/gdb/linux/cpus.py", line 33, in get_current_cpu
    return tasks.get_thread_info(tasks.get_task_by_pid(tid))['cpu']
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./scripts/gdb/linux/tasks.py", line 88, in get_thread_info
    if task.type.fields()[0].type == thread_info_type.get_type():
       ~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range

Link: https://lkml.kernel.org/r/20240425153501.749966-4-mail@florommel.de
Signed-off-by: Florian Rommel <mail@florommel.de>
Cc: Andrew Jones <ajones@ventanamicro.com>
Cc: Deepak Gupta <debug@rivosinc.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Cc: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-05-08 08:41:28 -07:00
..
__init__.py scripts/gdb: add empty package initialization script 2015-02-28 09:57:51 -08:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
clk.py scripts/gdb: bail early if there are no clocks 2023-04-08 13:45:38 -07:00
config.py scripts/gdb: change kernel config dumping method 2022-06-11 18:31:53 +09:00
constants.py.in S390: 2024-03-15 13:03:13 -07:00
cpus.py scripts/gdb: fix parameter handling in $lx_per_cpu 2024-05-08 08:41:28 -07:00
device.py scripts/gdb: fix lx-device-list-bus and lx-device-list-class 2023-12-06 16:12:49 -08:00
dmesg.py scripts/gdb: fix 'lx-dmesg' on 32 bits arch 2022-07-21 15:32:52 +02:00
genpd.py scripts/gdb: bail early if there are no generic PD 2023-04-08 13:45:38 -07:00
interrupts.py x86: replace CONFIG_HAVE_KVM with IS_ENABLED(CONFIG_KVM) 2024-02-08 08:45:35 -05:00
lists.py scripts/gdb: fix list_for_each 2021-02-26 09:41:05 -08:00
Makefile kbuild: use always-y instead of extra-y 2021-02-16 12:01:45 +09:00
mm.py arch: simplify architecture specific page size configuration 2024-03-06 19:29:03 +01:00
modules.py scripts/gdb/modules: add get module text support 2023-08-21 13:46:22 -07:00
page_owner.py scripts/gdb: remove exception handling and refine print format 2023-12-10 17:21:49 -08:00
pgtable.py scripts/gdb/aarch64: add aarch64 page operation helper commands and configs 2023-08-21 13:46:22 -07:00
proc.py scripts/gdb: create linux/vfs.py for VFS related GDB helpers 2023-04-18 16:39:34 -07:00
radixtree.py scripts/gdb: add a Radix Tree Parser 2023-04-18 16:39:33 -07:00
rbtree.py scripts/gdb: fix python 3.8 SyntaxWarning 2020-08-12 10:58:02 -07:00
slab.py scripts/gdb: remove exception handling and refine print format 2023-12-10 17:21:49 -08:00
stackdepot.py scripts/gdb/stackdepot: rename pool_index to pools_num 2023-12-10 17:21:48 -08:00
symbols.py scripts/gdb/symbols: fix invalid escape sequence warning 2024-03-07 16:14:19 -08:00
tasks.py scripts/gdb: make get_thread_info accept pointers 2024-05-08 08:41:28 -07:00
timerlist.py scripts/gdb: timerlist: convert int chunks to str 2023-04-18 16:39:34 -07:00
utils.py scripts/gdb: fix failing KGDB detection during probe 2024-05-08 08:41:27 -07:00
vfs.py scripts/gdb: add GDB convenience functions $lx_dentry_name() and $lx_i_dentry() 2023-04-18 16:39:35 -07:00
vmalloc.py scripts/gdb/vmalloc: fix vmallocinfo error 2024-02-21 16:00:02 -08:00