2020-07-22 10:25:44

by Stefano Garzarella

[permalink] [raw]
Subject: [PATCH] scripts/gdb: fix lx-symbols 'gdb.error' while loading modules

Commit ed66f991bb19 ("module: Refactor section attr into bin
attribute") removed the 'name' field from 'struct module_sect_attr'
triggering the following error when invoking lx-symbols:

(gdb) lx-symbols
loading vmlinux
scanning for modules in linux/build
loading @0xffffffffc014f000: linux/build/drivers/net/tun.ko
Python Exception <class 'gdb.error'> There is no member named name.:
Error occurred in Python: There is no member named name.

This patch fixes the issue taking the module name from the 'struct
attribute'.

Signed-off-by: Stefano Garzarella <[email protected]>
---
scripts/gdb/linux/symbols.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
index be984aa29b75..1be9763cf8bb 100644
--- a/scripts/gdb/linux/symbols.py
+++ b/scripts/gdb/linux/symbols.py
@@ -96,7 +96,7 @@ lx-symbols command."""
return ""
attrs = sect_attrs['attrs']
section_name_to_address = {
- attrs[n]['name'].string(): attrs[n]['address']
+ attrs[n]['battr']['attr']['name'].string(): attrs[n]['address']
for n in range(int(sect_attrs['nsections']))}
args = []
for section_name in [".data", ".data..read_mostly", ".rodata", ".bss",
--
2.26.2


2020-07-23 10:26:18

by Jan Kiszka

[permalink] [raw]
Subject: Re: [PATCH] scripts/gdb: fix lx-symbols 'gdb.error' while loading modules

On 22.07.20 12:22, Stefano Garzarella wrote:
> Commit ed66f991bb19 ("module: Refactor section attr into bin
> attribute") removed the 'name' field from 'struct module_sect_attr'
> triggering the following error when invoking lx-symbols:
>
> (gdb) lx-symbols
> loading vmlinux
> scanning for modules in linux/build
> loading @0xffffffffc014f000: linux/build/drivers/net/tun.ko
> Python Exception <class 'gdb.error'> There is no member named name.:
> Error occurred in Python: There is no member named name.
>
> This patch fixes the issue taking the module name from the 'struct
> attribute'.
>
> Signed-off-by: Stefano Garzarella <[email protected]>
> ---
> scripts/gdb/linux/symbols.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
> index be984aa29b75..1be9763cf8bb 100644
> --- a/scripts/gdb/linux/symbols.py
> +++ b/scripts/gdb/linux/symbols.py
> @@ -96,7 +96,7 @@ lx-symbols command."""
> return ""
> attrs = sect_attrs['attrs']
> section_name_to_address = {
> - attrs[n]['name'].string(): attrs[n]['address']
> + attrs[n]['battr']['attr']['name'].string(): attrs[n]['address']
> for n in range(int(sect_attrs['nsections']))}
> args = []
> for section_name in [".data", ".data..read_mostly", ".rodata", ".bss",
>

Reviewed-by: Jan Kiszka <[email protected]>

Thanks,
Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

2020-07-23 10:41:49

by Kieran Bingham

[permalink] [raw]
Subject: Re: [PATCH] scripts/gdb: fix lx-symbols 'gdb.error' while loading modules

Hi All,

On 23/07/2020 11:25, Jan Kiszka wrote:
> On 22.07.20 12:22, Stefano Garzarella wrote:
>> Commit ed66f991bb19 ("module: Refactor section attr into bin
>> attribute") removed the 'name' field from 'struct module_sect_attr'
>> triggering the following error when invoking lx-symbols:
>>
>>    (gdb) lx-symbols
>>    loading vmlinux
>>    scanning for modules in linux/build
>>    loading @0xffffffffc014f000: linux/build/drivers/net/tun.ko
>>    Python Exception <class 'gdb.error'> There is no member named name.:
>>    Error occurred in Python: There is no member named name.
>>
>> This patch fixes the issue taking the module name from the 'struct
>> attribute'.
>>

It might not be needed if this gets in to v5.8 in time, but perhaps:

Fixes: ed66f991bb19 ("module: Refactor section attr into bin attribute")

>> Signed-off-by: Stefano Garzarella <[email protected]>

Otherwise, also looks fine to me.

Reviewed-by: Kieran Bingham <[email protected]>

>> ---
>>   scripts/gdb/linux/symbols.py | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
>> index be984aa29b75..1be9763cf8bb 100644
>> --- a/scripts/gdb/linux/symbols.py
>> +++ b/scripts/gdb/linux/symbols.py
>> @@ -96,7 +96,7 @@ lx-symbols command."""
>>               return ""
>>           attrs = sect_attrs['attrs']
>>           section_name_to_address = {
>> -            attrs[n]['name'].string(): attrs[n]['address']
>> +            attrs[n]['battr']['attr']['name'].string():
>> attrs[n]['address']
>>               for n in range(int(sect_attrs['nsections']))}
>>           args = []
>>           for section_name in [".data", ".data..read_mostly",
>> ".rodata", ".bss",
>>
>
> Reviewed-by: Jan Kiszka <[email protected]>
>
> Thanks,
> Jan
>


--
--
Kieran