[LLVMdev] Preserving accurate stack traces with optimization?

Philip Reames listmail at philipreames.com
Wed Oct 30 19:25:04 PDT 2013


On 10/30/13 7:09 PM, Philip Reames wrote:
> David, Quentin - Thanks for the feedback.  Responses inline.
>
> On 10/30/13 11:21 AM, David Blaikie wrote:
>> Actually CCing Eric.
>>
>>
>> On Wed, Oct 30, 2013 at 11:00 AM, Quentin Colombet 
>> <qcolombet at apple.com <mailto:qcolombet at apple.com>> wrote:
>>
>>     Philip,
>>
>>     Thanks for the clarification.
>>
>>     As far as I can tell, there is currently no way to preserve a
>>     full and accurate stack trace while utilizing most of LLVM's
>>     optimization abilities.
>>
>>     The work on debug information may help you get the information
>>     you need, but I do not think we will provide information on stack
>>     frames that have been removed via inlining or tail call.
>>
>>
>> In theory, at -gmlt we should emit enough debug info to give you 
>> accurate stack traces including inlined frames. Tail calls I assume 
>> we can't do anything about.
> Tail calls I'm not too worried about.  I'm reasonably sure that our 
> existing optimizer doesn't do any tail call optimizations. Given that, 
> turning them off doesn't worry me too much performance wise.
>
> First, thank for you for mentioning the -gmit option.  I had been 
> completely unaware of that.  I'll have to dig into the implementation 
> and usage a bit.  Can you point me to any documentation?  A quick 
> google search didn't turn up anything.
>
> Can you clarify two things for me?  First, is the intent that -gmit 
> *always* provide accurate stack traces?  (modulo bugs of course)  If 
> so, what is your subjective opinion on how close it comes to meeting 
> that goal today?  (i.e. how much help would we need to contribute to 
> get it to a solid state?)
David - Redoing my google searching with "gmlt" (i.e. the correct 
spelling) I see more useful links.  From what I can gather, -gmlt emits 
a strict subset of the debug information you'd see at -g.  Are you 
saying that "-g" should always be sufficient for accurate stack traces - 
even in the face of inlining?  This would be ideal for us.

Philip

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


More information about the llvm-dev mailing list