diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2013-02-10 09:56:11 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2013-02-10 09:56:11 (GMT) |
commit | 34e1a14aced520ba06ee1b81cfd7710e97c1643f (patch) | |
tree | 2657c22041ab954bb2165553f71141b7843956a2 /src/analysis/disass/disassembler.c | |
parent | 3467b0cdb09976faccc6dbef09315cc38dbe6fb5 (diff) |
Improved the disassembling process by handling loops in code.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@339 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/disass/disassembler.c')
-rw-r--r-- | src/analysis/disass/disassembler.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c index 8f1d3f1..8c816f6 100644 --- a/src/analysis/disass/disassembler.c +++ b/src/analysis/disass/disassembler.c @@ -35,6 +35,7 @@ #include "fetch.h" #include "limit.h" #include "links.h" +#include "loop.h" #include "macro.h" #include "output.h" #include "../../decomp/lang/asm.h" @@ -258,6 +259,14 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta /* Quatrième étape */ + id = gtk_extended_status_bar_push(statusbar, _("Detecting loops..."), true); + + detect_loops_in_code(*disass->instrs, routines, routines_count, statusbar, id); + + gtk_extended_status_bar_remove(statusbar, id); + + /* Cinquième étape */ + id = gtk_extended_status_bar_push(statusbar, _("Grouping routines instructions..."), true); qsort(routines, routines_count, sizeof(GBinRoutine *), (__compar_fn_t)g_binary_routine_rcompare); @@ -268,7 +277,7 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta run_plugins_on_binary(disass->binary, PGA_BINARY_GROUPED, true); - /* Cinquième étape */ + /* Sixième étape */ id = gtk_extended_status_bar_push(statusbar, _("Printing disassembled code..."), true); |