我无法使用gdb访问gdb / mi的内存位置

时间:2016-02-10 13:26:56

标签: gdb memory-access

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

1 个答案:

答案 0 :(得分:0)

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

编辑:某些内存检查功能(如disas)可以正常工作,而printx之类的其他内容则不起作用。不幸的是,这个答案部分正确。