Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: David Blaikie <dblaikie <at> gmail.com>
Subject: Re: -gcolumn-info and PR 14106
Newsgroups: gmane.comp.compilers.llvm.devel
Date: Thursday 26th June 2014 22:28:51 UTC (over 3 years ago)
On Thu, Jun 26, 2014 at 12:49 PM, Diego Novillo 
wrote:
> On Thu, Jun 26, 2014 at 3:39 PM, Robinson, Paul
>  wrote:
>> The main motivation for turning it off is that no known consumer
(debugger)
>> took advantage of it.
>>
>> Turning it on does more than slightly increase the object file size, it
can
>> cause the same source line to be listed multiple times in the
.debug_line
>> table (with different column numbers).  This can be confusing to
debuggers
>> that ignore column info, or possibly to the users who expect “set
breakpoint
>> on line 12” to set one breakpoint and it actually sets 4. “How come
nothing
>> happens when I hit Continue?”
>
> Yes. David is testing the gdb testsuite to see whether that's a real
> problem. If that's a problem, it should show there (since GCC does not
> emit column info in dwarf, AFAIR).

FWIW, a basic run seems to show a handful (so not a pervasive issue)
of new failures:

FAIL: gdb.base/skip.exp: step after disabling 3 (3)
FAIL: gdb.reverse/step-precsave.exp: reverse step out of called fn
FAIL: gdb.reverse/step-precsave.exp: reverse next over call
FAIL: gdb.reverse/step-precsave.exp: reverse step test 1
FAIL: gdb.reverse/step-precsave.exp: reverse next test 1
FAIL: gdb.reverse/step-precsave.exp: reverse next test 2
FAIL: gdb.reverse/step-reverse.exp: reverse step out of called fn
FAIL: gdb.reverse/step-reverse.exp: reverse next over call
FAIL: gdb.reverse/step-reverse.exp: reverse step test 1
FAIL: gdb.reverse/step-reverse.exp: reverse next test 1
FAIL: gdb.reverse/step-reverse.exp: reverse next test 2

I haven't looked at why they're failing (if you'd like to reproduce
them & look into it, I can give you some pointers), though FWIW the
reverse debugging scenarios are usually a bit incompatible with clang
due to where clang likes to put the trailing breakpoint in a function
(return statement versus close brace).

>
> In any case, that would be a debugger issue. Not compiler.
>
>
>> For –Rpass and related uses, it might be useful to distinguish between
>> _tracking_ column numbers and _emitting_ column numbers. IIUC –Rpass
wants
>> column info tracked during compilation so it can show the things it
wants to
>> show with maximum relevance. Whether those column numbers actually make
it
>> into the .debug_line section is a different story.
>
> That's already done. -Rpass now enables a special loc tracking mode
> that causes no dwarf generation. The issue is the combination of
> -Rpass -g.
>
> With -Rpass alone, turning on column info is fine (since no debug
> output will be generated). However, -Rpass -g would be penalized since
> no column info would be shown in that case.
>
>
> Diego.

_______________________________________________
LLVM Developers mailing list
[email protected]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
 
CD: 3ms