diff --git a/linux-ramdump-parser-v2/parsers/lsof.py b/linux-ramdump-parser-v2/parsers/lsof.py index 35a3a8ac7c0a4fd0b2133c14f96bd721b7f766a7..98342a3587b1f7a50900ccb78383892018a7909a 100644 --- a/linux-ramdump-parser-v2/parsers/lsof.py +++ b/linux-ramdump-parser-v2/parsers/lsof.py @@ -33,17 +33,9 @@ TASK_NAME_LENGTH = 16 def do_dump_lsof_info(self, ramdump, lsof_info): - task_list_head_offset = ramdump.field_offset('struct task_struct', 'tasks') - init_task_address = self.ramdump.address_of('init_task') - init_tasklist_head = init_task_address + task_list_head_offset - task_list_head = ramdump.read_structure_field( - init_tasklist_head, 'struct list_head', 'next') - while task_list_head != init_tasklist_head: - task = task_list_head - task_list_head_offset - parse_task(self, ramdump, task, lsof_info) + for task_struct in ramdump.for_each_process(): + parse_task(self, ramdump, task_struct, lsof_info) lsof_info.write("\n*********************************") - task_list_head = ramdump.read_structure_field( - task_list_head, 'struct list_head', 'next') def parse_task(self, ramdump, task, lsof_info):