diff options
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/readelf.c | 16 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 3b886a7b..d112cd2e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2017-10-03 Mark Wielaard <[email protected]> + + * readelf.c (attr_callback): Print DIE offset in error messages. + 2017-11-03 Mark Wielaard <[email protected]> * readelf.c (print_ops): Handle DW_OP_GNU_variable_value. Print diff --git a/src/readelf.c b/src/readelf.c index 833884b5..e364583c 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -5935,13 +5935,15 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) { struct attrcb_args *cbargs = (struct attrcb_args *) arg; const int level = cbargs->level; + Dwarf_Die *die = cbargs->die; unsigned int attr = dwarf_whatattr (attrp); if (unlikely (attr == 0)) { if (!cbargs->silent) - error (0, 0, gettext ("cannot get attribute code: %s"), - dwarf_errmsg (-1)); + error (0, 0, gettext ("DIE [%" PRIx64 "] " + "cannot get attribute code: %s"), + dwarf_dieoffset (die), dwarf_errmsg (-1)); return DWARF_CB_ABORT; } @@ -5949,8 +5951,9 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) if (unlikely (form == 0)) { if (!cbargs->silent) - error (0, 0, gettext ("cannot get attribute form: %s"), - dwarf_errmsg (-1)); + error (0, 0, gettext ("DIE [%" PRIx64 "] " + "cannot get attribute form: %s"), + dwarf_dieoffset (die), dwarf_errmsg (-1)); return DWARF_CB_ABORT; } @@ -5964,8 +5967,9 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) { attrval_out: if (!cbargs->silent) - error (0, 0, gettext ("cannot get attribute value: %s"), - dwarf_errmsg (-1)); + error (0, 0, gettext ("DIE [%" PRIx64 "] " + "cannot get attribute value: %s"), + dwarf_dieoffset (die), dwarf_errmsg (-1)); return DWARF_CB_ABORT; } char *a = format_dwarf_addr (cbargs->dwflmod, cbargs->addrsize, |
