Messages in this thread Patch in this message | | | From | Kieran Bingham <> | Subject | [PATCHv3 05/13] scripts/gdb: Support !CONFIG_MODULES gracefully | Date | Thu, 3 Mar 2016 11:40:59 +0000 |
| |
If CONFIG_MODULES is not enabled, lx-lsmod tries to find a non-existent symbol and generates an unfriendly traceback:
(gdb) lx-lsmod Address Module Size Used by Traceback (most recent call last): File "scripts/gdb/linux/modules.py", line 75, in invoke for module in module_list(): File "scripts/gdb/linux/modules.py", line 24, in module_list module_ptr_type = module_type.get_type().pointer() File "scripts/gdb/linux/utils.py", line 28, in get_type self._type = gdb.lookup_type(self._name) gdb.error: No struct type named module. Error occurred in Python command: No struct type named module.
Catch the error and return an empty module_list() for a clean command output as follows:
(gdb) lx-lsmod Address Module Size Used by (gdb)
Signed-off-by: Kieran Bingham <kieran.bingham@linaro.org> --- scripts/gdb/linux/modules.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py index 571489b3b9c2..60224d8bbfb2 100644 --- a/scripts/gdb/linux/modules.py +++ b/scripts/gdb/linux/modules.py @@ -21,8 +21,11 @@ module_type = utils.CachedType("struct module") def module_list(): global module_type + modules = utils.gdb_eval_or_none("modules") + if modules is None: + return + module_ptr_type = module_type.get_type().pointer() - modules = gdb.parse_and_eval("modules") for module in lists.list_for_each_entry(modules, module_ptr_type, "list"): yield module -- 2.5.0
| |