GDB未使用的变量

时间:2011-11-21 00:22:08

标签: c variables gcc gdb trace

是否可以使用GDB获取未使用变量的值? GCC是否有一些配置,以便未显示未使用变量的垃圾值?'?

c file:

#include<stdio.h>

void main()
{
    int x;
    int y;
    printf("value of x: %d",x);

}

在gdb中我想得到变量y的垃圾值。

(gdb) run
Starting program: /home/charmae/workspace/AVT/a.out 

Breakpoint 1, main () at file4.c:7
7       printf("value of x: %d",x);
(gdb) info locals
x = 2789364
(gdb) p y
$1 = <optimized out>
(gdb) p x
$2 = 2789364

3 个答案:

答案 0 :(得分:1)

它与GDB无关。优化该变量的实体是编译器(在您的情况下可能是GCC)。您可以强制它通过将变量声明为volatile

来保留它

更好的问题是 - 你为什么要这么做?

答案 1 :(得分:0)

这与gcc无关。编译器已编译代码以维护该值,或者它没有。

答案 2 :(得分:0)

您可以添加y=y;语句。这会强制使用y,并gcc -O0 -g跟踪它(至少在我的Linux / Debian / Sid / AMD64上gcc 4.6.2gdb 7.3.50