[LLVMdev] DIBuilder - what's with the null compile units?

Talin viridia at gmail.com
Sun Oct 23 00:03:01 PDT 2011


Just a follow up on this - I am still having problems, I never did figure
out a solution. (I've been running with debug off for the last month so that
I could get work done.)

Here's what I am seeing: I am definitely calling DIBuilder::finalize(). I
even put a debug print statement right after it, so that I could be sure
that the code was being executed. I also insured that it was getting called
before the module was written out, and that no additional debug information
gets added after it has been called.

Yet despite this, the second-to-last parameter for DW_TAG_subprogram
metadata is in fact null in the module dissassembly.

So essentially I am completely stumped.

On Mon, Sep 26, 2011 at 8:01 AM, James Molloy <James.Molloy at arm.com> wrote:

> Hi Talin,
>
> Followup as promised: in our case we weren't calling finalize(). As this
> manifests itself as exactly the same assertion failure as yours I suggest
> you double-check you are actually calling it before any passes run on the
> Module.
>
> Functionally, instead of maintaining a pointer to the CU in all Debug
> nodes, the main CompilationUnit node has a list of subprogram nodes. It is
> from this that a map gets generated of Subprogram -> CU. If such a mapping
> doesn't exist, the assertion you see (assuming it is the same as ours)
> fires.
>
> First thing I'd do is check the generated metadata. Is second-to-last
> parameter of the DW_TAG_subprogram metadata pointing at a pointer to NULL,
> or is it pointing at a pointer to DW_TAG_subprogram?
>
> If the former, finalize() is not being run (or something is failing at that
> point). If the latter, your problem is different to ours.
>
> Hope this helps,
>
> James
>
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
> Behalf Of James Molloy
> Sent: 24 September 2011 09:38
> To: Devang Patel; Talin
> Cc: LLVM Developers Mailing List
> Subject: Re: [LLVMdev] DIBuilder - what's with the null compile units?
>
> Hi,
>
> Thanks for bringing this up, I'm just about to investigate an identical
> case which has broken our front-end. Both ours and clang generate
> subroutineinfo with null compilationunits, but ours asserts and clang's
> doesn't.
>
> I'll take a look at this on Monday, if it is a bug in LLVM.
>
> Cheers,
>
> James
>
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
> Behalf Of Devang Patel
> Sent: 23 September 2011 21:06
> To: Talin
> Cc: LLVM Developers Mailing List
> Subject: Re: [LLVMdev] DIBuilder - what's with the null compile units?
>
>
> On Sep 23, 2011, at 12:39 PM, Talin wrote:
>
> > Sometime about two months ago, something changed in LLVM that broke my
> frontend's ability to generate debug info. This was around the time that the
> requirement to call DIBuilder::finalize() was added (and yes, I am calling
> it.) Specifically, what I am seeing is an assertion failure in llc because
> it can't find the compile unit for a subroutine.
>
> I forgot to say earlier, that's a bug. Please file a PR with a test case.
> -
> Devang
>
> >
> > I took a look at the code in DIBuilder.cpp, and I see that indeed it is
> setting the compile unit to null for all of the various descriptors being
> created. I assume that the intent is that these references would be filled
> in later - but apparently this is not happening in my case. Any idea what
> could be wrong?
> >
> > --
> > -- Talin
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium.  Thank you.
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium.  Thank you.
>
>


-- 
-- Talin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111023/b224b26b/attachment.html>


More information about the llvm-dev mailing list