diff options
Diffstat (limited to 'src/analysis/disass')
| -rw-r--r-- | src/analysis/disass/output.c | 14 | 
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; | 
