[llvm-dev] Function start address

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 1 08:00:53 PDT 2018

Any particular reason you're using debug info to achieve this (& if you
are, why you're using the line table?)? You could query the
object/executable file's symbol table to find all the functions in an
object or executable, and the instruction/address they start at. Or, if you
are using debug info for some reason, you could look in the debug_info
rather than the line table, and find the DW_TAG_subprogram for each
function and look at its low_pc.

On Fri, Jun 1, 2018 at 3:36 AM Muhui Jiang via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi
> I am using LLVM Pass combined with dwarf debug information to get all the
> function's start address. My steps are below:
> First, I write the function pass to get the start line of each function,
> which is finished.
> Then, based on the start line of every single function, I try to query the
> specific line from the dwarf's line binary table, which is generated with
> llvm-dwarfdump -debug-line.
> However, About one third of the whole functions' start line is not found
> in the mapping table. Thus, I can not get the start binary address. I know
> that the mapping between source locations and binary addresses is not
> bijective. I am using O1 optimization option. I know that some of the
> information might be lost legitimately because of optimization. But I don't
> think dwarf will miss so many functions' start addresses. Am I right? Any
> useful comments and suggestions are welcomed. Many Thanks
> Regards
> Muhui
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180601/20498e76/attachment.html>

More information about the llvm-dev mailing list