[PATCH] gdb: lx-symbols: do not error out on monolithic build

Etienne Buira posted 1 patch 2 weeks, 1 day ago
There is a newer version of this series
scripts/gdb/linux/modules.py | 3 +++
scripts/gdb/linux/symbols.py | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
[PATCH] gdb: lx-symbols: do not error out on monolithic build
Posted by Etienne Buira 2 weeks, 1 day ago
This avoids spurious message:
(gdb) lx-symbols
loading vmlinux
No source file named kernel/module/main.c.

Signed-off-by: Etienne Buira <etienne.buira@free.fr>
---
 scripts/gdb/linux/modules.py | 3 +++
 scripts/gdb/linux/symbols.py | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py
index 298dfcc25eae..fa15f872ddbe 100644
--- a/scripts/gdb/linux/modules.py
+++ b/scripts/gdb/linux/modules.py
@@ -19,6 +19,9 @@ from linux import cpus, utils, lists, constants
 module_type = utils.CachedType("struct module")
 
 
+def has_modules():
+    return utils.gdb_eval_or_none("modules") is not None
+
 def module_list():
     global module_type
     modules = utils.gdb_eval_or_none("modules")
diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
index e8316beb17a7..fb0f55d81686 100644
--- a/scripts/gdb/linux/symbols.py
+++ b/scripts/gdb/linux/symbols.py
@@ -178,13 +178,13 @@ lx-symbols command."""
 
         self.load_all_symbols()
 
-        if hasattr(gdb, 'Breakpoint'):
+        if hasattr(gdb, 'Breakpoint') and modules.has_modules():
             if self.breakpoint is not None:
                 self.breakpoint.delete()
                 self.breakpoint = None
             self.breakpoint = LoadModuleBreakpoint(
                 "kernel/module/main.c:do_init_module", self)
-        else:
+        elif modules.has_modules():
             gdb.write("Note: symbol update on module loading not supported "
                       "with this gdb version\n")
 
-- 
2.45.2
Re: [PATCH] gdb: lx-symbols: do not error out on monolithic build
Posted by Jan Kiszka 2 weeks, 1 day ago
On 08.11.24 14:39, Etienne Buira wrote:
> This avoids spurious message:
> (gdb) lx-symbols
> loading vmlinux
> No source file named kernel/module/main.c.
> 
> Signed-off-by: Etienne Buira <etienne.buira@free.fr>
> ---
>  scripts/gdb/linux/modules.py | 3 +++
>  scripts/gdb/linux/symbols.py | 4 ++--
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py
> index 298dfcc25eae..fa15f872ddbe 100644
> --- a/scripts/gdb/linux/modules.py
> +++ b/scripts/gdb/linux/modules.py
> @@ -19,6 +19,9 @@ from linux import cpus, utils, lists, constants
>  module_type = utils.CachedType("struct module")
>  
>  
> +def has_modules():
> +    return utils.gdb_eval_or_none("modules") is not None
> +
>  def module_list():
>      global module_type
>      modules = utils.gdb_eval_or_none("modules")
> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
> index e8316beb17a7..fb0f55d81686 100644
> --- a/scripts/gdb/linux/symbols.py
> +++ b/scripts/gdb/linux/symbols.py
> @@ -178,13 +178,13 @@ lx-symbols command."""
>  
>          self.load_all_symbols()
>  

if not modules.has_modules():
   return

> -        if hasattr(gdb, 'Breakpoint'):
> +        if hasattr(gdb, 'Breakpoint') and modules.has_modules():
>              if self.breakpoint is not None:
>                  self.breakpoint.delete()
>                  self.breakpoint = None
>              self.breakpoint = LoadModuleBreakpoint(
>                  "kernel/module/main.c:do_init_module", self)
> -        else:
> +        elif modules.has_modules():
>              gdb.write("Note: symbol update on module loading not supported "
>                        "with this gdb version\n")
>  

Looks good otherwise.

Jan

-- 
Siemens AG, Technology
Linux Expert Center