Возможно, вы просто смотрите не на ту нить.
Попробуйте thread apply all where
и посмотрите, действительно ли один из потоков abort()
ing.
При отладке живого процесса GDB остановится, когда поток получит SIGABRT
, и, вероятно, покажет вам соответствующий поток.
При отладке ядра (посмертно) GDB не знает, какой поток является релевантным, и поэтому показывает их вам в любом порядке, в котором ОС сохранила их в ядре. Ядра Linux сохраняют поток, который первым вызвал процесс, поэтому GDB в Linux показывает соответствующий поток из ядра. Я предполагаю, что HP-UX этого не делает, и поэтому GDB показывает вам «случайный» поток.