如何在GDB中查看内存中存储的系列数值(炸弹实验场景)
查看指定地址格式化字符串的GDB命令
你需要用字符串格式查看0x3409地址处的内容,之前的命令无效是因为默认显示格式不匹配:
- 使用
x/s 0x3409命令:/s是GDB的字符串输出格式,会从0x3409地址开始读取ASCII字符,直到遇到空终止符(\0),这样就能看到完整的格式化字符串(比如你需要的%d %d %d %d %d %d)。 - 若需更精准控制,也可以指定显示长度,比如
x/12s 0x3409表示读取12个字符,但通常x/s会自动识别到字符串结尾。
之前的命令问题说明:
print 0x3409只是将十六进制地址转换为十进制数值,和地址存储的内容无关。- 默认的
x 0x3409等价于x/wx 0x3409,是按4字节无符号十六进制输出,所以得到的是地址处前4个字节的十六进制值(0x25206425对应ASCII的% d%,刚好是%d %d的前四个字节)。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

