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

Finding the correct implementation in C++ code

本文关键字:实现 C++ 代码      更新时间:2023-10-16

关于另一个有人注意到的问题,apt-get install -y没有问问题(正如预期的那样),但似乎是从stdin中读取的。

我很好奇,试着理解那本书有什么好处。因此,我拿了一个Ubuntu盒子,用apt-get source apt获取了代码。

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

这样做,我可以将代码追踪到调用PM->DoInstall(status_fd)的几乎这一行(不确定我是否为链接获取了正确的提交)。

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

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

问题:

  • 找到上述方法的定义的正确程序是什么
  • 有没有比添加调试输出更好的方法来验证我的猜测
  • 我还错过了什么吗

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

您可以在后台运行apt-get,在它被SIGTTIN挂起后,附加gdb并检查backtrace