[DWARF] Tracking uninitialized variables

Kyrill Tkachov kyrylo.tkachov@arm.com
Fri Jul 17 11:16:00 GMT 2015


On 17/07/15 11:43, Nikolai Bozhenov wrote:
> Hello!
>
> It is certainly true that debugging an optimized code is an inherently
> difficult task. Though, I wonder if the compiler could make such
> debugging experience slightly less surprising.
>
> Consider the following example:
>
>       1 extern void bar(int *i1, int *i2, int *i3);
>       2
>       3 int __attribute__((noinline)) foo(int i1, int i2) {
>       4   int a, b, c;
>       5   a = i1 << i2;
>       6   b = (i1 + i2) * i1;
>       7   c = (b + i1);
>       8   bar(&a, &b, &c);
>       9 }
>      10
>      11 int main() {
>      12   foo(42, 12);
>      13 }
>
> Let's compile it:
>
>      $ gcc-trunk tst.c -g -fvar-tracking-uninit -O2

Just a drive-by thought.
Have you tried the -Og option? The documentation for it says:
"Optimize debugging experience.-Ogenables optimizations that do not interfere with debugging. It should be the optimization level of choice for the standard edit-compile-debug cycle, offering a reasonable level of optimization while 
maintaining fast compilation and a good debugging experience."

Kyrill



More information about the Gcc mailing list