diff options
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/readelf.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index d112cd2e..c56c323c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2017-11-21 Mark Wielaard <[email protected]> + + * readelf.c (attr_callback): Print attribute name and form in error + message. If only the value cannot be retrieved/resolved don't abort. + 2017-10-03 Mark Wielaard <[email protected]> * readelf.c (attr_callback): Print DIE offset in error messages. diff --git a/src/readelf.c b/src/readelf.c index e364583c..a9168d1e 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -5968,9 +5968,14 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) attrval_out: if (!cbargs->silent) error (0, 0, gettext ("DIE [%" PRIx64 "] " - "cannot get attribute value: %s"), - dwarf_dieoffset (die), dwarf_errmsg (-1)); - return DWARF_CB_ABORT; + "cannot get attribute '%s' (%s) value: " + "%s"), + dwarf_dieoffset (die), + dwarf_attr_name (attr), + dwarf_form_name (form), + dwarf_errmsg (-1)); + /* Don't ABORT, it might be other attributes can be resolved. */ + return DWARF_CB_OK; } char *a = format_dwarf_addr (cbargs->dwflmod, cbargs->addrsize, addr, addr); |
