cc: Resolve symbols from external debuginfo
Adds support for resolving symbols using external debuginfo files,
which can be retrieved from two locations. First, check the build-id
of the desired binary and look in /usr/lib/debug/.build-id according
to the build-id structure. Second, check the debuglink section of
the desired binary and look in /usr/lib/debug or in the binary's
current directory. These are the rules applied by GDB as well, but
GDB lets the user reconfigure the debug directory path from
/usr/lib/debug to something else; we do not support this.
These changes are based on the following description of how GDB
resolves external debuginfo:
https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html
diff --git a/tools/stacksnoop.py b/tools/stacksnoop.py
index 52be79b..3cd7062 100755
--- a/tools/stacksnoop.py
+++ b/tools/stacksnoop.py
@@ -120,7 +120,7 @@
print("%-18.9f %s" % (ts, function))
for addr in stack_traces.walk(event.stack_id):
- sym = b.ksym(addr, show_address=offset)
+ sym = b.ksym(addr, show_offset=offset)
print("\t%s" % sym)
print()