Допустим, имеем процесс aaa, который посредством fork делится на родительский и дочерний. Находим в исходнике программы точку ветвления и вставляем в тело дочернего кода sleep(). Компилируемом. Теперь, после прохождении точки ветвления дочерний процесс засыпает, и у нас есть время выполнить команду ps и таким образом определить его PID (пусть он оказался 1234) и, за тем, говорим в среде gdb:
(gdb) attach 1234
Ву-аля! Мы перецепились к дочернему процесс, и можем теперь отлаживать его на здоровье!
Угу, я это пробовал. Жопа заключается в том, что, когда устанавливаем брякпоинт в чайлде и затем continue, или просто nexti, GDB валится на ассёрте... :(
Есть ли какие-нибудь еще отладчики для линукса - удобные для мультитредов-мультипроцессов?