mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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>
			
			
This commit is contained in:
		
							parent
							
								
									ec0b6d17a5
								
							
						
					
					
						commit
						db08c53fdd
					
				
					 1 changed files with 2 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -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()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue