我正在设置 gdb 来调试 OS-161,并且我计划使用 DDD 作为可视化前端。我正在遵循官方 CS-161 课程页面的说明:http ://www.eecs.harvard.edu/~cs161/resources/eclipse.html (向下滚动到 DDD)。
在切换到我构建内核的内核/编译/DUMBVM 后,我启动 DDD ddd -debugger mips-harvard-os161-gdb --gdb kernel
(因为 OS161 内核作为内核安装)。当我这样做时,DDD 会打开我的操作系统树的一个源文件。
然后在使用调试模式启动 sys161 后sys161 -w kernel
,我输入target remote unix:os161/root/.sockets/gdb
DDD,这给了我以下错误:unix:os161/root/.sockets/gdb: No such file or directory
什么可能导致此错误?我可以使用 .gdbinit 中的目标远程命令成功设置 gdb 而无需 DDD,因此我知道 .sockets 目录中的 gdb 文件存在并且有效。我怀疑的一件事是为什么启动 ddd 的初始命令会打开一个特定的源文件(每次都一样),这可以链接吗?
如果任何有 OS161 经验的人都知道如何使用 GUI 前端设置 gdb(不必严格使用 DDD)以简化调试(我不想使用 vim :/),那就太好了。
顺便说一句,如果有帮助,我正在使用 Debian Jessie。