OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
scripts
/
gdb
/
linux
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
.gitignore
25 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
Makefile
599 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
__init__.py
55 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
constants.py.in
1.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpus.py
4.44 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
dmesg.py
2.43 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
lists.py
3.55 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
modules.py
2.54 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
proc.py
8.41 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
symbols.py
6.28 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
tasks.py
3.46 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
utils.py
4.72 KB
01/28/2018 09:20:33 PM
rw-r--r--
Editing: modules.py
Close
# # gdb helper commands and functions for Linux kernel debugging # # module tools # # Copyright (c) Siemens AG, 2013 # # Authors: # Jan Kiszka <jan.kiszka@siemens.com> # # This work is licensed under the terms of the GNU GPL version 2. # import gdb from linux import cpus, utils, lists 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() for module in lists.list_for_each_entry(modules, module_ptr_type, "list"): yield module def find_module_by_name(name): for module in module_list(): if module['name'].string() == name: return module return None class LxModule(gdb.Function): """Find module by name and return the module variable. $lx_module("MODULE"): Given the name MODULE, iterate over all loaded modules of the target and return that module variable which MODULE matches.""" def __init__(self): super(LxModule, self).__init__("lx_module") def invoke(self, mod_name): mod_name = mod_name.string() module = find_module_by_name(mod_name) if module: return module.dereference() else: raise gdb.GdbError("Unable to find MODULE " + mod_name) LxModule() class LxLsmod(gdb.Command): """List currently loaded modules.""" _module_use_type = utils.CachedType("struct module_use") def __init__(self): super(LxLsmod, self).__init__("lx-lsmod", gdb.COMMAND_DATA) def invoke(self, arg, from_tty): gdb.write( "Address{0} Module Size Used by\n".format( " " if utils.get_long_type().sizeof == 8 else "")) for module in module_list(): layout = module['core_layout'] gdb.write("{address} {name:<19} {size:>8} {ref}".format( address=str(layout['base']).split()[0], name=module['name'].string(), size=str(layout['size']), ref=str(module['refcnt']['counter'] - 1))) t = self._module_use_type.get_type().pointer() first = True sources = module['source_list'] for use in lists.list_for_each_entry(sources, t, "source_list"): gdb.write("{separator}{name}".format( separator=" " if first else ",", name=use['source']['name'].string())) first = False gdb.write("\n") LxLsmod()