[PATCH] gdb: lx-symbols: do not error out on monolithic build
From: Etienne Buira
Date: Fri Nov 08 2024 - 08:46:50 EST
This avoids spurious message:
(gdb) lx-symbols
loading vmlinux
No source file named kernel/module/main.c.
Signed-off-by: Etienne Buira <etienne.buira@xxxxxxx>
---
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