diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py old mode 100755 new mode 100644 index e0a379cd4d5c11884d38dfd6e1c1885af2fab48c..8d126080e578ad26bf71c80875335732cd1a8ba1 --- a/linux-ramdump-parser-v2/ramdump.py +++ b/linux-ramdump-parser-v2/ramdump.py @@ -804,6 +804,23 @@ class RamDump(): print_out_str('!!! Could not lookup saved command line address') return False + def print_socinfo(self): + content_socinfo = hex(self.read_pointer('socinfo')) + content_socinfo = content_socinfo.strip('L') + sernum_offset = self.field_offset('struct socinfo_v10', 'serial_number') + if sernum_offset is None: + sernum_offset = self.field_offset('struct socinfo_v0_10', 'serial_number') + if sernum_offset is None: + print_out_str("No serial number information available") + return False + addr_of_sernum = hex(int(content_socinfo, 16) + sernum_offset) + addr_of_sernum = addr_of_sernum.strip('L') + serial_number = self.read_u32(int(addr_of_sernum, 16)) + if serial_number is not None: + print_out_str('Serial number %s' % hex(serial_number)) + return True + return False + def auto_parse(self, file_path): for cls in sorted(AutoDumpInfo.__subclasses__(), key=lambda x: x.priority, reverse=True): diff --git a/linux-ramdump-parser-v2/ramparse.py b/linux-ramdump-parser-v2/ramparse.py old mode 100755 new mode 100644 index 78c77cd3052cc426317e803ac9cffb36f021a4cd..7245e9bbb3a05809f892c1985ac666f1af0f249c --- a/linux-ramdump-parser-v2/ramparse.py +++ b/linux-ramdump-parser-v2/ramparse.py @@ -349,6 +349,9 @@ if __name__ == '__main__': print_out_str('!!! Exiting now...') sys.exit(1) + if not dump.print_socinfo(): + print_out_str('!!! No serial number information available.') + if options.qdss: print_out_str('!!! --parse-qdss is now deprecated') print_out_str(