Выясните, где моя программа зависает, используя GDB?

#c #gdb

#c #gdb

Вопрос:

Как бы я получил все трассировки стека для всех потоков в GDB?

Мне нужно выяснить, где зависает моя программа и является ли причиной этого внешняя среда. Мне нужно что-то вроде backtrace команды, но такая, которая получает все трассировки.

Ответ №1:

thread apply all <command> выполняется <command> для всех потоков, например:

 (gdb) thread apply all backtrace
  

Кроме того, вам может оказаться полезным следующее: gdb ручная отладка программ с несколькими потоками.