diff options
Diffstat (limited to 'scripts/gdb/linux/tasks.py')
| -rw-r--r-- | scripts/gdb/linux/tasks.py | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/scripts/gdb/linux/tasks.py b/scripts/gdb/linux/tasks.py index 862a4ae24d49..1bf949c43b76 100644 --- a/scripts/gdb/linux/tasks.py +++ b/scripts/gdb/linux/tasks.py @@ -114,3 +114,22 @@ variable."""  LxThreadInfoFunc() + + +class LxThreadInfoByPidFunc (gdb.Function): +    """Calculate Linux thread_info from task variable found by pid + +$lx_thread_info_by_pid(PID): Given PID, return the corresponding thread_info +variable.""" + +    def __init__(self): +        super(LxThreadInfoByPidFunc, self).__init__("lx_thread_info_by_pid") + +    def invoke(self, pid): +        task = get_task_by_pid(pid) +        if task: +            return get_thread_info(task.dereference()) +        else: +            raise gdb.GdbError("No task of PID " + str(pid)) + +LxThreadInfoByPidFunc() | 
