[LLVMdev] -gcolumn-info and PR 14106

Diego Novillo
Thu, 26 Jun 2014 19:49:56 -0000

On Thu, Jun 26, 2014 at 3:39 PM, Robinson, Paul
<Paul_Robinson at playstation.sony.com> 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).

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.