отладка — поиск правильной реализации в коде C ++

На Другой вопрос кто-то заметил, что apt-get install -y не задает вопросы (как и ожидалось), но, кажется, читает из STDIN в любом случае.

Мне было любопытно, и я пытался понять, для чего это чтение полезно.
Поэтому я взял коробку Ubuntu и получил код с apt-get source apt,

Для отладки я вставил несколько строк отладочной информации и собрал все debuild -b -uc -usи установил результат.

Делая так, я мог бы отследить код в значительной степени эта линия (не уверен, что я выбрал именно правильный коммит для ссылки) где PM->DoInstall(status_fd) называется.

Где именно этот метод определен? Я нашел только определение в packagemanager.cc (и поискать nstall(int ничего хорошего тоже не показало), но добавлен отладочный вывод, там не печатается. Поэтому я предполагаю, что пропустил правильную реализацию для вызова выше.

Из регулярного вывода следующее, что я вижу, это вывод dpkg (и есть STDIN между ними), но я не могу найти код, который запускается DoInstall, который в конце вызывает dpkg.

Вопрос:

  • Какова правильная процедура, чтобы найти определение некоторого метода как выше?
  • Есть ли лучший способ проверить мои предположения, чем добавление результатов отладки?
  • Я что-то пропустил?

1

Решение

Есть ли лучший способ проверить мои предположения, чем добавление результатов отладки?

Вы могли бы запустить apt-get на заднем плане и после того, как он был приостановлен SIGTTIN, прикреплять gdb и осмотреть backtrace,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]