diff options
Diffstat (limited to 'src/format')
-rw-r--r-- | src/format/symbol.c | 14 | ||||
-rw-r--r-- | src/format/symbol.h | 6 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/format/symbol.c b/src/format/symbol.c index fb198d9..48f3dbb 100644 --- a/src/format/symbol.c +++ b/src/format/symbol.c @@ -598,6 +598,20 @@ GArchInstruction *g_binary_symbol_get_instruction(const GBinSymbol *symbol) void g_binary_symbol_set_comment(GBinSymbol *symbol, GDbComment *comment) { +#ifndef NDEBUG + const vmpa2t *saddr; /* Adresse du symbole */ + const vmpa2t *caddr; /* Adresse du commentaire */ +#endif + +#ifndef NDEBUG + + saddr = get_mrange_addr(g_binary_symbol_get_range(symbol)); + caddr = g_db_comment_get_address(comment); + + assert(cmp_vmpa(saddr, caddr) == 0); + +#endif + symbol->comment = comment; } diff --git a/src/format/symbol.h b/src/format/symbol.h index ce452f1..8432d8d 100644 --- a/src/format/symbol.h +++ b/src/format/symbol.h @@ -136,10 +136,12 @@ GDbComment *g_binary_symbol_get_comment(const GBinSymbol *); } \ while (0) -#define ADD_RAW_AS_SYM(_fmt, _sym, _pos, _ins, _cmt, _txt) \ +#define ADD_RAW_AS_SYM(_fmt, _sym, _ins, _cmt, _txt) \ do \ { \ - _cmt = g_db_comment_new_inlined(_pos, BLF_HAS_CODE, _txt, false); \ + const vmpa2t *__addr; \ + __addr = get_mrange_addr(g_arch_instruction_get_range(_ins)); \ + _cmt = g_db_comment_new_inlined(__addr, BLF_HAS_CODE, _txt, false); \ g_db_item_set_volatile(G_DB_ITEM(_cmt), true); \ _sym = g_binary_symbol_new(STP_DATA); \ g_binary_symbol_attach_instruction(_sym, _ins); \ |