Отладка нескольких разветвленных процессов в * nix - PullRequest
3 голосов
/ 25 сентября 2011

Существуют ли простые способы отладки дочерних процессов в * nix без необходимости откладывать их и создавать новые экземпляры GDB, используя ps для получения pid дочернего процесса?Есть ли отладчики, которые делают это?

1 Ответ

6 голосов
/ 25 сентября 2011

Вы уже можете сделать это, используя gdb.Вот как:

(gdb) set detach-on-fork off
(gdb) set follow-fork-mode child
(gdb) catch fork # use breakpoint if catch fork not available

Тогда в какой-то момент вы достигнете своей вилки.Перепрыгните через него и gdb должен сообщить вам, что есть новый процесс.

[New process 813]

На этом этапе вы должны просмотреть «подчиненных»

(gdb) info inferiors
  Num  Description       Executable
* 2    process 813       /home/cnicutar/fork
  1    process 810       /home/cnicutar/fork

Чтобы переключиться на другого подчиненного, используйте

(gdb) inferior 1
[Switching to inferior 1 [process 810] (/home/cnicutar/fork)]
[Switching to thread 1 (process 810)]

(gdb) info inferiors
  Num  Description       Executable
  2    process 813       /home/cnicutar/fork
* 1    process 810       /home/cnicutar/fork

Надеюсь, это поможет: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...