Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

scripts/gdb: fix parameter handling in $lx_per_cpu

Before, the script tried to get the address by constructing a pointer to
the parameter (by name). However, since GDB now passes the parameter as a
GdbValue, we cannot get its name. Instead, we retrieve the address
through GdbValue's address attribute.

Before:
>>> p $lx_per_cpu(cpu_info)
Traceback (most recent call last):
File "./scripts/gdb/linux/cpus.py", line 152, in invoke
var_ptr = gdb.parse_and_eval("&" + var_name.string())
^^^^^^^^^^^^^^^^^
gdb.error: Trying to read string with inappropriate type `struct cpuinfo_x86'.

Link: https://lkml.kernel.org/r/20240425153501.749966-3-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>

authored by

Florian Rommel and committed by
Andrew Morton
db08c53f ec0b6d17

+2 -3
+2 -3
scripts/gdb/linux/cpus.py
··· 152 152 def __init__(self): 153 153 super(PerCpu, self).__init__("lx_per_cpu") 154 154 155 - def invoke(self, var_name, cpu=-1): 156 - var_ptr = gdb.parse_and_eval("&" + var_name.string()) 157 - return per_cpu(var_ptr, cpu) 155 + def invoke(self, var, cpu=-1): 156 + return per_cpu(var.address, cpu) 158 157 159 158 160 159 PerCpu()