Методы отладки без средств отладки

Я оказался в затруднительном положении. ситуация, когда приходится отлаживать приложение Qt почти без какого-либо инструмента отладки: кажется, что приложение начинает использовать все больше и больше ЦП, поскольку оно снова и снова выполняет одно и то же действие; после многих часов процессор полностью загружен.

Приложение работает на встроенном устройстве ARM Linux, где gdb, похоже, не работает, возможно, трудно обнаружить проблемы с предоставленным набором инструментов. Кажется, что strace сообщает только об активности таймера (это приложение OpenGL, так что это ожидаемо). ltrace недоступен, и его компиляция оказалась сложной задачей, а может и бесполезной. Я не писал приложение, но исходный код доступен.

Что еще я могу сделать, чтобы выяснить, чем занято приложение, потребляющее столько ресурсов? В любом случае я должен отслеживать все вызовы методов, которые делает приложение? Есть ли какой-либо другой метод, который я могу использовать, чтобы попытаться угадать проблему или на чем сосредоточить свое внимание?

РЕДАКТИРОВАТЬ: Это одна из проблем с gdb: Только вопросительные знаки в обратной трассировке, сообщаемые gdb на ARM. Даже написание десятистрочного приложения, имитирующего segfault, приводит к этому.

6
задан Community 23 May 2017 в 12:04
поделиться