在C ++代码中找到正确的实现

时间:2015-12-05 15:00:51

标签: c++ debugging apt

another question有人注意到,apt-get install -y没有提出问题(正如预期的那样),但似乎还是从 stdin 中读取。

我很好奇,并试图理解那阅读有什么用处。 因此,我使用了一个Ubuntu框并使用apt-get source apt获取了代码。

为了进行调试,我插入了几行调试输出并用debuild -b -uc -us构建了所有内容,并安装了结果。

这样做我几乎可以追踪代码this line(不确定我是否为链接提取了正确的提交),其中PM->DoInstall(status_fd)被调用。

该方法究竟在哪里定义?我只在packagemanager.cc中找到了一个定义(并且nstall(int的grepping也没有显示任何好的内容),但添加的调试输出没有打印。因此,我认为我错过了上述调用的正确实现。

从常规输出中我看到的下一件事是dpkg的输出(以及之间吃 stdin )但我找不到DoInstall运行的代码,最后调用dpkg

问题:

  • 找到上述某种方法的定义的正确程序是什么?
  • 有没有比添加调试输出更好的方法来验证我的猜测?
  • 我有没有想念别的什么?

1 个答案:

答案 0 :(得分:0)

  

有没有比添加调试输出更好的方法来验证我的猜测?

您可以在后台运行apt-get,在SIGTTIN暂停之后,附上gdb并检查backtrace