首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将调试信息添加到os161

将调试信息添加到os161
EN

Stack Overflow用户
提问于 2014-02-19 12:40:35
回答 1查看 1.8K关注 0票数 1

我正在尝试调试os161,但由于缺少调试信息而遇到了问题。我的函数都没有行号信息,所以我可以执行类似"b lock_acquire“的操作,但当我执行"s”时,它会显示“单步执行,直到退出lock_acquire函数,它没有行号信息。”当我尝试做"l lock_acquire“时,我也得到了"No line number known error”,"No symbol lock in current context“。当我在lock_acquire输入"p lock“时。此外,当我输入ptype curthread时,它会显示“数据变量,找不到调试信息”,而不是一些有用的东西。我使用了这里的配置说明,http://www.cdf.utoronto.ca/~csc369h/fall/docs/configure.shtml。在编译os161时,有没有办法添加更多的调试信息?

编辑:要启动gdb,我输入

代码语言:javascript
复制
% cd ~/os161/root
% sys161 -w kernel

在一个窗口中输入

代码语言:javascript
复制
% cd ~/os161/root
% cs161-gdb kernel
(gdb) target remote unix:.sockets/gdb

在第二个窗口中。

EN

回答 1

Stack Overflow用户

发布于 2014-04-02 07:10:45

有几种方法可以调试内核,一种方法是直接向内核添加调试消息。例如在系统中添加DEBUG宏。(lib.h)

代码语言:javascript
复制
...
DEBUG(DB_SYSCALL, "Entering into user mode\n");
...

你可以用另一种方式使用GDB,就像你刚才说的那样。您应该使用'n‘和'bt’来检查步骤,而不是使用's‘。如果不阅读任何错误,我不知道如何提供更多信息。我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21871193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档