GDB: запуск отладки процесса cpp без символов - PullRequest
0 голосов
/ 25 августа 2018

Система Linux, на которой запущено приложение.Это приложение представляет собой двоичный файл cpp без каких-либо символов отладки.Некоторые, как это приложение, используя 100% процессора.Хотел бы отладить, почему он работает бесконечно.Если я остановлю и заменю двоичный файл символами отладки, проблема может быть не воспроизводимой.

Таким образом, при запуске того же приложения с символами отладки в другой среде.Здесь все работает нормально.

Могу ли я сравнить их (с двоичными файлами символов отладки и без них) и определить, в чем проблема, используя GDB.

1 Ответ

0 голосов
/ 25 августа 2018

Это приложение представляет собой двоичный файл cpp без каких-либо символов отладки.

Вам не нужно никаких символов отладки, чтобы понять, где он проводит время. Вам просто нужноприложение не должно быть полностью раздетым (большинство двоичных файлов - нет).

Используйте perf record -p $pid для сбора профиля ЦП, затем perf report для его анализа.

Если приложение является полностью раздетым, вы все равно можете использовать perf record для сбора значений счетчика программы, а затем perf record --symfs ..., чтобы указать его на неразрезанную копию приложения.Документация здесь .

Осторожно: копии должны быть удалены как из разорванных, так и из разорванных копий с точно одинаковыми флагами сборки, иначе вы получите мусор.Рекомендуется всегда сохранять неснятую копию как часть процесса сборки.

...