如何使用GDB(或其他程序)获得堆栈的一般概述?

时间:2017-01-23 21:40:18

标签: c gdb stack printf

如果我有这个小C代码(我用gcc -m32 -o code code.c编译):

int main(){

    char tab[3];
    tab[0]='a';
    tab[1]='b';
    tab[2]='c';

return 0;
}

如何使用GDB(或其他程序)来获得堆栈的一般概述,如:

 ADRESSES      VALUES

 0xbffff260    0x61
 0xbffff261    0x62
 0xbffff262    0x63

谢谢

p.s: a,b,c的值分别为0x61,0x62,0x63。

1 个答案:

答案 0 :(得分:0)

要显示本地堆栈的变量,请尝试使用gdb命令:

where 

如果您想要程序中存在的每个帧的变量,请尝试使用:

where full

然后,如果您想选择特定的框架使用:

frame <frame#>

编辑:

另外,尝试使用-g标志进行编译。

gcc -g code.c -o code

所以你可以在gdb中调试。