GUI-приложения не реагируют на ^ C и ^ нарушают работу консольных приложений. Поскольку в наши дни большинство нетривиальных проектов, как правило, являются приложениями или библиотеками с графическим интерфейсом, в основном используемыми в приложениях с графическим интерфейсом, у вас есть два варианта:
Отправка SIGSTOP в приложение с отдельного терминала. Это громоздко.
Если вы нажмете ^ C или ^ Break в командной строке GDB, GDB прекратит работу, но приложение продолжит работу. Затем вы можете снова запустить GDB для подключения к нему, используя ключ командной строки -p
. Это теряет состояние отладчика.
В обоих случаях вам может пригодиться: tasklist | grep
ProcessName
| sed -e 's/
ProcessName
*\([0-9]*\).*/gdb
ModuleName
-pid=\1/' > rungdb.sh
Вы можете изменить это для использования в скриптах оболочки, make-файлах или для отправки сигнала вместо присоединения GDB.
info threads
поможет вам понять, на какую нить вы хотите посмотреть. Затем используйте thread
ThreadNumber
, чтобы переключиться на него.