Skip to content

Commit a07babb

Browse files
committed
cppexport bug fix for Ghidra 10.3.3 breaking api change, fixes #10
1 parent d220291 commit a07babb

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

ghidrecomp/decompile.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,13 @@ def decompile_to_single_file(path: Path,
8989
else:
9090
monitor = ConsoleTaskMonitor().DUMMY
9191

92-
decompiler = CppExporter(create_header, create_file, emit_types, exclude_tags, tags)
92+
try:
93+
# Ghidra CppExporter before 10.3.3 and later
94+
decompiler = CppExporter(None,create_header, create_file, emit_types, exclude_tags, tags)
95+
except TypeError:
96+
# Ghidra CppExporter before 10.3.3
97+
decompiler = CppExporter(create_header, create_file, emit_types, exclude_tags, tags)
98+
9399
decompiler.export(c_file, prog, prog.getMemory(), monitor)
94100

95101

@@ -200,6 +206,9 @@ def decompile(args: Namespace):
200206
if skip_count > 0:
201207
print(f'Skipped {skip_count} functions that failed to match any of {args.filters}')
202208

209+
decompilations = []
210+
callgraphs = []
211+
203212
if args.cppexport:
204213
print(f"Decompiling {len(all_funcs)} functions using Ghidra's CppExporter")
205214
c_file = Path(args.output_path) / Path(bin_path.name + '.c')
@@ -211,10 +220,7 @@ def decompile(args: Namespace):
211220
print(f'Decompiling {len(all_funcs)} functions using {thread_count} threads')
212221

213222
decompilers = setup_decompliers(program, thread_count)
214-
215223
completed = 0
216-
decompilations = []
217-
callgraphs = []
218224

219225
# Decompile all files
220226
start = time()

0 commit comments

Comments
 (0)