[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