From 8794ca03e9090c78c903e19479455bb4a42b950e Mon Sep 17 00:00:00 2001 From: Sri Krishna Madireddy <smadired@codeaurora.org> Date: Tue, 25 Jul 2017 16:24:07 -0700 Subject: [PATCH] LRDPv2: Parse dcc dumps with autodump option to rdp Add support to parse DCC dumps with autodump option to RDP In autodump we give only ramdumps location without --ram-file bin locations. Change-Id: I87aa2b337415dd93cc5b60c813bf6cd1712f2565 --- linux-ramdump-parser-v2/dcc.py | 8 ++++++-- linux-ramdump-parser-v2/debug_image_v2.py | 7 +++++-- linux-ramdump-parser-v2/ramdump.py | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/linux-ramdump-parser-v2/dcc.py b/linux-ramdump-parser-v2/dcc.py index 8081f2e..8b8b8fd 100644 --- a/linux-ramdump-parser-v2/dcc.py +++ b/linux-ramdump-parser-v2/dcc.py @@ -60,8 +60,12 @@ class DccSramDump(): def __init__(self, start, end, ram_dump): self.start_addr = start self.end_addr = end - self.bin_dir = ram_dump.ram_addr - self.bin_dir="\\".join(self.bin_dir[0][0].split('\\')[:-1]) + self.bin_dir = None + if ram_dump.ram_addr is None: + self.bin_dir = ram_dump.autodump + else: + self.bin_dir = ram_dump.ram_addr + self.bin_dir="\\".join(self.bin_dir[0][0].split('\\')[:-1]) self.dcc_bin = os.path.join(self.bin_dir, 'DCC_SRAM.BIN') if os.path.isfile(self.dcc_bin): diff --git a/linux-ramdump-parser-v2/debug_image_v2.py b/linux-ramdump-parser-v2/debug_image_v2.py index eb6b85a..2361f78 100644 --- a/linux-ramdump-parser-v2/debug_image_v2.py +++ b/linux-ramdump-parser-v2/debug_image_v2.py @@ -466,8 +466,11 @@ class DebugImage_v2(): def parse_dcc(self, ram_dump): out_dir = ram_dump.outdir - bin_dir = ram_dump.ram_addr - bin_dir="\\".join(bin_dir[0][0].split('\\')[:-1]) + if ram_dump.ram_addr is None: + bin_dir = ram_dump.autodump + else: + bin_dir = ram_dump.ram_addr + bin_dir="\\".join(bin_dir[0][0].split('\\')[:-1]) dcc_parser_path = os.path.join(os.path.dirname(__file__), '..', 'dcc_parser', 'dcc_parser.py') if dcc_parser_path is None: print_out_str("!!! Incorrect path for DCC specified.") diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py index 07e3b56..7d244d1 100644 --- a/linux-ramdump-parser-v2/ramdump.py +++ b/linux-ramdump-parser-v2/ramdump.py @@ -535,7 +535,10 @@ class RamDump(): self.minidump = options.minidump self.elffile = None self.ram_elf_file = None - + self.ram_addr = options.ram_addr + self.autodump = options.autodump + self.module_table = module_table.module_table_class() + self.module_table.setup_sym_path(options.sym_path) if self.minidump: try: mod = import_module('elftools.elf.elffile') @@ -546,9 +549,6 @@ class RamDump(): except ImportError: print "Oops, missing required library for minidump. Check README" sys.exit(1) - self.ram_addr = options.ram_addr - self.module_table = module_table.module_table_class() - self.module_table.setup_sym_path(options.sym_path) if options.ram_addr is not None: # TODO sanity check to make sure the memory regions don't overlap -- GitLab