addr2line: skip CUs lacking debug info instead of bailing out
Some binaries (such as the FreeBSD kernel) contain a mixture of CUs with and without debug information. Previously translate() exited upon encountering a CU without debug information. Instead, just move on to the next CU. Reported by: royger Reviewed by: royger Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3712
This commit is contained in:
parent
6b1ad46a3b
commit
c9dbb1cc52
@ -248,7 +248,13 @@ translate(Dwarf_Debug dbg, const char* addrstr)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (dwarf_srclines(die, &lbuf, &lcount, &de) != DW_DLV_OK) {
|
||||
switch (dwarf_srclines(die, &lbuf, &lcount, &de)) {
|
||||
case DW_DLV_OK:
|
||||
break;
|
||||
case DW_DLV_NO_ENTRY:
|
||||
/* If one CU lacks debug info, just skip it. */
|
||||
continue;
|
||||
default:
|
||||
warnx("dwarf_srclines: %s", dwarf_errmsg(de));
|
||||
goto out;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user