0

我正在尝试print *((int*)0x00401000)使用 gdb 和 gdb/mi 在 Kmines(扫雷游戏)上执行命令。使用 gdb 时,该命令起作用并返回输出$1=0。但是在使用与 gdb/mi 相同的命令时,它会返回^error,msg="Cannot access memory at address 0x400000"错误。Gdb 绝对可以访问该位置,这是毫无疑问的。但是为什么 gdb/mi 不能,而 gdb 可以呢?

4

1 回答 1

0

我忘了提到我使用的是不间断模式。因此,正因为如此,gdb 让调试对象在执行命令时运行,并且 gdb 必须停止进程以访问 proc/pid/mem 并从中读取值。所以如果没有线程,gdb 将无法访问内存停了下来。

编辑:一些记忆检查功能,例如有效,disas而其他一些功能则无效。所以不幸的是,这个答案部分正确。printx

于 2016-02-11T16:16:29.893 回答