在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
问题:
答案 0 :(得分:0)
有没有比添加调试输出更好的方法来验证我的猜测?
您可以在后台运行apt-get
,在SIGTTIN
暂停之后,附上gdb
并检查backtrace
。