GDB未使用的变量

cha*_*mae 6 c variables trace gcc gdb

是否可以使用GDB获取未使用变量的值?GCC是否有一些配置,以便未使用的变量的垃圾值显示为"优化输出"?

c文件:

#include<stdio.h>

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

}
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)

gby*_*gby 1

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

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