【问题标题】:Add debugging info to os161将调试信息添加到 os161
【发布时间】:2014-02-19 04:40:34
【问题描述】:

我正在尝试调试 os161,但由于缺少调试信息而遇到了问题。我的函数都没有行号信息,所以我可以做类似“b lock_acquire”的事情,但是当我做“s”时,它会说“单步直到退出函数lock_acquire, 它没有行号信息。”当我尝试执行“l lock_acquire”时,我也收到“No line number known error”,得到“当前上下文中没有符号锁。”当我在 lock_acquire 并输入“p lock ”。此外,当我键入 ptype curthread 时,它显示“数据变量,未找到调试信息”而不是有用的东西。我使用了这里的配置说明http://www.cdf.utoronto.ca/~csc369h/fall/docs/configure.shtml。在编译 os161 时有什么方法可以添加更多调试信息吗?

编辑: 要启动 gdb,我输入

% cd ~/os161/root
% sys161 -w kernel

在一个窗口中然后输入

% cd ~/os161/root
% cs161-gdb kernel
(gdb) target remote unix:.sockets/gdb

在第二个窗口中。

【问题讨论】:

    标签: gdb os161


    【解决方案1】:

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

    ...
    DEBUG(DB_SYSCALL, "Entering into user mode\n");
    ...
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2022-01-19
      • 2012-08-19
      • 1970-01-01
      相关资源
      最近更新 更多