Re: [PATCH] scripts/gdb: fix 'lx-current' for x86

From: Jan Kiszka
Date: Tue Feb 07 2023 - 11:32:48 EST


On 07.02.23 16:48, Jeff Xie wrote:
> Andrew was added.
>
> Hi Andrew,
>
> I found the patches for the ./scripts/gdb/* were merged by you before,
> but the "./scripts/get_maintainer.pl ./scripts/gdb/linux/cpus.py"
> can't find your name, so added you.
>

Yes, Andrew is merging scripts/gdb stuff.

> Can you review this patch ;-)
>
> On Sat, Feb 4, 2023 at 5:02 PM Jeff Xie <xiehuan09@xxxxxxxxx> wrote:
>>
>> When printing the name of the current process, it will report an error:
>> (gdb) p $lx_current().comm
>> Python Exception <class 'gdb.error'> No symbol "current_task" in current context.:
>> Error occurred in Python: No symbol "current_task" in current context.
>>
>> Because the commit <e57ef2ed97c1> ("x86: Put hot per CPU variables into a struct")
>> changed it.
>>
>> Signed-off-by: Jeff Xie <xiehuan09@xxxxxxxxx>
>> ---
>> scripts/gdb/linux/cpus.py | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/gdb/linux/cpus.py b/scripts/gdb/linux/cpus.py
>> index 15fc4626d236..9ee99f9fae8d 100644
>> --- a/scripts/gdb/linux/cpus.py
>> +++ b/scripts/gdb/linux/cpus.py
>> @@ -163,7 +163,7 @@ def get_current_task(cpu):
>> task_ptr_type = task_type.get_type().pointer()
>>
>> if utils.is_target_arch("x86"):
>> - var_ptr = gdb.parse_and_eval("&current_task")
>> + var_ptr = gdb.parse_and_eval("&pcpu_hot.current_task")
>> return per_cpu(var_ptr, cpu).dereference()
>> elif utils.is_target_arch("aarch64"):
>> current_task_addr = gdb.parse_and_eval("$SP_EL0")
>> --
>> 2.25.1
>>
>

FWIW:

Reviewed-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>

Should go into 6.2 if possible.

Thanks
Jan

--
Siemens AG, Technology
Competence Center Embedded Linux