c - 我应该如何查看GDB中特定地址的堆栈数据?

标签 c linux gdb

执行程序的简单c源代码:

int main ( int argc , char **argv )                                                                                                                          
{                                                                                                                                                            
        system ("XXXX");                                                                                                                           
        return 0;                                                                                                                                            
} 

现在编译它并用 gdb 调试,我试图通过 p 命令查看“XXX”实际代表的地址,但是得到一个空值,我做错了吗?

enter image description here

最佳答案

如果要检查位于地址 0x40063c 的字符串,请使用 GDB examine 命令:

(gdb) x/s 0x40063c

请注意,此数据 在堆栈中。您可以使用 info symbol 命令找出数据的位置:

(gdb) info sym 0x40063c

(这应该打印类似 symbol LC1 in .rodata of a.out 的内容)

关于c - 我应该如何查看GDB中特定地址的堆栈数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629042/

相关文章:

c - 我应该使用哪个编译标志 -> Os 或 O2?

C - 如何从文件中读取特定行

python-3.x - 在 debian 11 Bullseye 上使用 Ansible 安装损坏的软件包

c - gdb 调试 - 仅在 stdin 内\n

c - 在C中查找 "double free or corruption (out):"的原因

c - 访问 16 位 DLL

c++ - Wine 链接器错误 : trying to create . lnk

linux - "sudo ./xampp-linux-x64-5.6.3-0-installer.run"有什么作用?

python - 如何使用Python将文件/目录从Linux远程复制到AWS EC2实例上的Windows?

gdb - 是否可以在 GDB 中命名断点?