Re: [PATCH 4.19 42/86] scripts/gdb: fix lx-symbols gdb.error while loading modules

Kieran Bingham
2020-07-27T14:26:51Z

Hi Greg, Sasha,

On 27/07/2020 15:04, Greg Kroah-Hartman wrote:
> From: Stefano Garzarella <sgarzare@redhat.com>
>
> [ Upstream commit 7359608a271ce81803de148befefd309baf88c76 ]
>
> 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:

Has ed66f991bb19 ("module: Refactor section attr into bin attribute")
been backported to 4.19? It doesn't /sound/ like something that would
require backporting unless something else depended up on it, but if it
hasn't been ... then *this* patch shouldn't be either...

Same for 5.4, and 5.7 that's just come in.

This patch will 'apply' cleanly, and not hit any compilation errors, as
it only changes python code... so my reason to highlight is in case some
automated system picked it up based on those assumptions.

If ed66f991bb19 has also been backported, then I'm sorry for the noise ;-)

--
Kieran

>
> (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'.
>
> Fixes: ed66f991bb19 ("module: Refactor section attr into bin attribute")
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
> Reviewed-by: Kieran Bingham <kbingham@kernel.org>
> Link: http://lkml.kernel.org/r/20200722102239.313231-1-sgarzare@redhat.com
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
> 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 4644f1a83b578..aa4f87e3ddb12 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",
>

--
--
Kieran