lkml.org 
[lkml]   [2015]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v12 12/28] scripts/gdb: Add task iteration class
    Date
    This class allows to iterate over all tasks of the target.

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

    diff --git a/scripts/gdb/linux/tasks.py b/scripts/gdb/linux/tasks.py
    new file mode 100644
    index 0000000..cd25984
    --- /dev/null
    +++ b/scripts/gdb/linux/tasks.py
    @@ -0,0 +1,46 @@
    +#
    +# gdb helper commands and functions for Linux kernel debugging
    +#
    +# task & thread tools
    +#
    +# Copyright (c) Siemens AG, 2011-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
    +
    +
    +task_type = utils.CachedType("struct task_struct")
    +
    +
    +class TaskList:
    + def __init__(self):
    + global task_type
    + self.task_ptr_type = task_type.get_type().pointer()
    + self.init_task = gdb.parse_and_eval("init_task")
    + self.curr_group = self.init_task.address
    + self.curr_task = None
    +
    + def __iter__(self):
    + return self
    +
    + def next(self):
    + t = self.curr_task
    + if not t or t == self.curr_group:
    + self.curr_group = \
    + utils.container_of(self.curr_group['tasks']['next'],
    + self.task_ptr_type, "tasks")
    + if self.curr_group == self.init_task.address:
    + raise StopIteration
    + t = self.curr_task = self.curr_group
    + else:
    + self.curr_task = \
    + utils.container_of(t['thread_group']['next'],
    + self.task_ptr_type, "thread_group")
    + return t
    --
    2.1.4


    \
     
     \ /
      Last update: 2015-01-30 08:41    [W:4.609 / U:0.464 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site