diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2016-12-13 11:40:53 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2016-12-13 11:40:53 (GMT) | 
| commit | 73d58a38c5847f54aa9458b3612ffd35b7372dc9 (patch) | |
| tree | b1412630f4679cdf5c9e97943f0fb9645a426592 /src/format | |
| parent | 3754a5e3edeea98ce426b65772708ae91b291c1f (diff) | |
Ensured all symbol comments match their symbol address.
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);                     \  | 
