我正在编写一个操作系统,但在尝试调试我的代码时遇到了问题。我正在使用 GDB 连接到 Bochs 的 GDB 存根以“远程”调试我的内核。连接工作正常,从内核文件加载调试符号也是如此。我为成功定位的 kmain 函数设置了一个断点,并且调试器正确中断(在我的内核中)。但是,我不能通过我的代码“步进”或“下一步”,GDB 显然也不能确定哪一行代码是当前行。
当我尝试“步进”时,我收到以下消息:“找不到当前函数的边界”。这是我在任何时候收到的唯一错误消息。
我的代码正在使用 -g 标志在 GCC 中编译(我尝试过使用 GCC 选项的其他类型的调试信息;没有一个有效。)我尝试查看 GDB 手册,以及寻找答案,我我完全被难住了。任何帮助都会很棒。
谢谢!