[llvm-commits] PATCH: DebugInfo library: add methods to fetch function name for a given address
Alexey Samsonov
samsonov at google.com
Mon Jun 25 06:58:52 PDT 2012
Hi!
This patch fixes minor issues in libLLVMDebugInfo and adds an interface its
clients can use to
fetch the function name for a given instruction address (analogue to
"addr2line -f").
The usage is illustrated by the additional flag to llvm-dwarfdump tool.
Currently the implementation is straightforward:
1) get the compile unit for a given address (using pre-built list of
address ranges).
2) re-extract all DIEs of this compile unit.
3) iterate over all DIEs and find a subprogram DIE, such that given address
lies in PC range of this subprogram.
If this patch is ok, I would like to go on further and add functionality to
fetch the
file/line info and function names for all the inlined frames. Hopefully,
this wouldn't require much code (the code which
builds a DIE tree for each compile unit is already present). However, the
clients of DebugInfo lib would
have to pass an additional section to DIContext ctor - .debug_ranges (in
fact, it is necessary even for the
current code, as compiling with -O2 often breaks PC range of functions into
multiple ranges).
Codereview: http://codereview.appspot.com/6342043/
--
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120625/0f9d4c2b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm-dwarfdump-function-name.diff
Type: application/octet-stream
Size: 12431 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120625/0f9d4c2b/attachment.obj>
More information about the llvm-commits
mailing list