[LLVMdev] getFunction() of DISubprogram return 0?
dpatel at apple.com
Mon Jul 25 10:14:37 PDT 2011
On Jul 22, 2011, at 6:37 PM, Lu Zhao wrote:
> I'd like to get the Function* that is described by a DISubprogram. I
> found this method getFunction() in the class. However, when I use it in
> my code, the function always returns 0. I tried to dig into it and saw
> that a mysterious number 16 is used in getFunctionField(16). I'm
> wondering if my failure of the function was caused by my incorrect use,
> e.g., without fulfilling necessary assumptions by running some passes
> first, or by that this number was planned but not implemented yet.
It is likely that your front end did not emit include Function * while emitting debugging information entry for a subprogram. Initially, Function * was not part of DISubprogram.
If you wonder how do you determine field number 16 is used for Function * then see, http://llvm.org/docs/SourceLevelDebugging.html#format_subprograms
More information about the llvm-dev