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