lkml.org 
[lkml]   [2014]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v8 04/22] scripts/gdb: Add module iteration class
    Date
    Will soon be used for loading symbols, printing global variables or
    listing modules.

    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    ---
    scripts/gdb/linux/modules.py | 39 +++++++++++++++++++++++++++++++++++++++
    1 file changed, 39 insertions(+)
    create mode 100644 scripts/gdb/linux/modules.py

    diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py
    new file mode 100644
    index 0000000..8a65c3d
    --- /dev/null
    +++ b/scripts/gdb/linux/modules.py
    @@ -0,0 +1,39 @@
    +#
    +# 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 utils
    +
    +
    +module_type = utils.CachedType("struct module")
    +
    +
    +class ModuleList:
    + def __init__(self):
    + global module_type
    + self.module_ptr_type = module_type.get_type().pointer()
    + modules = gdb.parse_and_eval("modules")
    + self.curr_entry = modules['next']
    + self.end_of_list = modules.address
    +
    + def __iter__(self):
    + return self
    +
    + def next(self):
    + entry = self.curr_entry
    + if entry != self.end_of_list:
    + self.curr_entry = entry['next']
    + return utils.container_of(entry, self.module_ptr_type, "list")
    + else:
    + raise StopIteration
    --
    1.8.1.1.298.ge7eed54


    \
     
     \ /
      Last update: 2014-06-06 21:21    [W:6.049 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site