我正在尝试将 gdb 与 emacs 一起使用。我试图调试的库是由进程加载的,不能直接运行。因此,我使用 gdb 中的 attach 命令附加到该进程。当我在 shell 中使用 gdb 时,附加到进程并设置断点可以正常工作,但是当我在 emacs 中使用 gdb 时(通过按 Mx gdb 或 Mx gud-gdb),它无法设置断点。它向我显示了一个错误,上面写着“无法在 0x7efb04 访问内存”。我正在使用 emacs 23.1.1。
这是我遵循的过程的细分:
- 按
M-x gdb
或M-x gud-gdb
在 emacs 中启动 gdb。 - 输入使用调试符号构建的可执行文件的名称。
- 键入“attach [PID]”以将 gdb 附加到正在运行的进程。
- 通过键入以下内容设置断点:文件名:行号。
最后一步给了我一个错误,上面写着“无法在 0x7efb04 访问内存”。
任何想法为什么会发生这种情况?
编辑:我在使用 DDD(GDB 的 UI)时遇到同样的错误。所以我想这不是emacs特定的问题。