diff --git a/linux-ramdump-parser-v2/parsers/timerlist.py b/linux-ramdump-parser-v2/parsers/timerlist.py index 187c361277faceb14159c116b82186e60a415c8f..5d6ba3c835422d8081a931d2b49025a044cf766f 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(