summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/analysis/disass/output.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/analysis/disass/output.c b/src/analysis/disass/output.c
index e20a134..a6e5f51 100644
--- a/src/analysis/disass/output.c
+++ b/src/analysis/disass/output.c
@@ -143,7 +143,7 @@ void print_disassembled_instructions(GBufferCache *cache, GCodingLanguage *lang,
{
expect_outro = false;
- border = g_border_generator_new(lang, &outro_addr, false, msize);
+ border = g_border_generator_new(lang, iaddr, false, msize);
g_buffer_cache_append(cache, G_LINE_GENERATOR(border), BLF_NONE);
}
@@ -212,6 +212,18 @@ void print_disassembled_instructions(GBufferCache *cache, GCodingLanguage *lang,
/* Mémorisation de la fin */
+ /**
+ * On ne peut pas utiliser l'adresse obtenue dans outro_addr
+ * comme localisation de la marque de clôture. En effet, en
+ * fin du contenu ou de segment, l'adresse générée peut être
+ * inexistante.
+ *
+ * On utilise donc l'adresse de l'instruction suivante.
+ *
+ * On est cependant bien conscient qu'une instruction suivante
+ * est nécessaire pour imprimer cette marque de clôture.
+ */
+
compute_mrange_end_addr(g_binary_symbol_get_range(symbols[sym_index]), &outro_addr);
expect_outro = true;