]> Git Repo - J-linux.git/commitdiff
scripts/gdb: fix parameter handling in $lx_per_cpu
authorFlorian Rommel <[email protected]>
Thu, 25 Apr 2024 15:34:59 +0000 (17:34 +0200)
committerAndrew Morton <[email protected]>
Wed, 8 May 2024 15:41:28 +0000 (08:41 -0700)
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/[email protected]
Signed-off-by: Florian Rommel <[email protected]>
Cc: Andrew Jones <[email protected]>
Cc: Deepak Gupta <[email protected]>
Cc: Jan Kiszka <[email protected]>
Cc: Kieran Bingham <[email protected]>
Cc: Kuan-Ying Lee <[email protected]>
Cc: Palmer Dabbelt <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
scripts/gdb/linux/cpus.py

index cba589e5b57d61e6a4bb57280aeea76395737b24..2b51a3abd3639f0c0644625d634dd4926a8d488c 100644 (file)
@@ -152,9 +152,8 @@ Note that VAR has to be quoted as string."""
     def __init__(self):
         super(PerCpu, self).__init__("lx_per_cpu")
 
-    def invoke(self, var_name, cpu=-1):
-        var_ptr = gdb.parse_and_eval("&" + var_name.string())
-        return per_cpu(var_ptr, cpu)
+    def invoke(self, var, cpu=-1):
+        return per_cpu(var.address, cpu)
 
 
 PerCpu()
This page took 0.045847 seconds and 4 git commands to generate.