From 26d3f7255daf1263e0bdedc39b0f2f6427256f45 Mon Sep 17 00:00:00 2001 From: Mahesh Komuravelli <mkomurav@codeaurora.org> Date: Fri, 28 Sep 2018 19:40:34 +0530 Subject: [PATCH] lrdp_v2 : Fix for broken timerlist parser Handle Lookup of delayed work function timers for dynamic modules Change-Id: I5b771f8ec63f26847b223e8ca30c2695cb853312 Signed-off-by: Mahesh Komuravelli <mkomurav@codeaurora.org> --- linux-ramdump-parser-v2/parsers/timerlist.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/linux-ramdump-parser-v2/parsers/timerlist.py b/linux-ramdump-parser-v2/parsers/timerlist.py index 187c361..5d6ba3c 100644 --- a/linux-ramdump-parser-v2/parsers/timerlist.py +++ b/linux-ramdump-parser-v2/parsers/timerlist.py @@ -66,8 +66,11 @@ class TimerList(RamParser) : timer_list_offset = self.ramdump.field_offset('struct delayed_work', 'timer') work_addr = node - timer_list_offset func_addr = work_addr + self.ramdump.field_offset('struct work_struct', 'func') - work_func = self.ramdump.unwind_lookup(self.ramdump.read_word(func_addr))[0] - data += " / " + work_func + try: + work_func = self.ramdump.unwind_lookup(self.ramdump.read_word(func_addr))[0] + data += " / " + work_func + except TypeError: + data += " / " + hex(self.ramdump.read_word(func_addr)) + "<MODULE>" if not self.timer_42: timer_base_addr = node + self.ramdump.field_offset( -- GitLab