Skip to content

Commit 4032aed

Browse files
Merge pull request #99 from mbabinski-at-google/db-path
Allow overriding the database path on the command line.
2 parents 55fe515 + f22ffff commit 4032aed

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

plasma/lib/__init__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ def parse_args(self):
119119
help='Disable analysis on the entry point / symbols and don\'t scan memmory. You can force it with the command push_analyze_symbols.')
120120
parser.add_argument('--debugsp', action='store_true',
121121
help="Print the stack offset on each instructions. Warning: these values will not be saved in the database.")
122+
parser.add_argument('--db_path', default=None, help="Database path ('.<exe_name>.db' by default).")
122123

123124
args = parser.parse_args()
124125

@@ -140,6 +141,7 @@ def parse_args(self):
140141
self.list_sections = args.sections
141142
self.autoanalyzer = not args.noautoanalyzer
142143
self.debugsp = args.debugsp
144+
self.db_path = args.db_path
143145

144146
if args.nbytes == 0:
145147
self.nbytes = 4
@@ -157,6 +159,13 @@ def parse_args(self):
157159
else:
158160
self.raw_base = 0
159161

162+
def _get_database_path(self, executable_filename):
163+
if self.db_path is not None:
164+
return self.db_path
165+
dirname = os.path.dirname(executable_filename)
166+
path = dirname + "/" if dirname != "" else ""
167+
path += "." + os.path.basename(executable_filename) + ".db"
168+
return path
160169

161170
def load_file(self, filename=None):
162171
if filename is None:
@@ -175,7 +184,7 @@ def load_file(self, filename=None):
175184
die()
176185

177186
self.db = Database()
178-
self.db.load(filename)
187+
self.db.load(self._get_database_path(filename))
179188

180189
if self.raw_base != 0:
181190
self.db.raw_base = self.raw_base

plasma/lib/database.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ def __init_vars(self):
9292
def load(self, filename):
9393
gc.disable()
9494

95-
dirname = os.path.dirname(filename)
96-
self.path = dirname + "/" if dirname != "" else ""
97-
self.path += "." + os.path.basename(filename) + ".db"
95+
self.path = filename
9896

9997
if os.path.exists(self.path):
10098
info("open database %s" % self.path)

0 commit comments

Comments
 (0)