gdb и fork

IDE, VCS и прочее

Модератор: Модераторы разделов

Taurust
Сообщения: 3
ОС: Linux

gdb и fork

Сообщение Taurust »

Есть некая программа которая при работе вызывает кучу модулей. Вызваются они комбинацией vfork/exec. Далее через шеловский скрипт открывается сам модуль, и если нужно то с отладчиком. Как привязать отладчик к самой программе так чтобы он отслеживал запуски этих модулей и сам к ним привязывался? gdb вроде как сказано в документации поддерживает работу с форками и должен сам их перехватывать, но:

Код:

#include <stdio.h> #include <unistd.h> #include <sys/types.h> int main() { printf("Hello world!\n"); pid_t id; id = fork(); if(!id) { sleep(30); printf("Fork\n"); } else printf("No Fork\n"); return 0; }



Код:

(gdb) b 16 Breakpoint 1 at 0x80483f9: file main.c, line 16. (gdb) run Starting program: /root/dev/forks/main Hello world! Breakpoint 1, main () at main.c:16 16 printf("No Fork\n"); (gdb) info forks No forks. (gdb) c Continuing. No Fork Program exited normally. (gdb) Fork



Версия gdb 6.5 другой пока нету.
Спасибо сказали:
arch
Сообщения: 74
ОС: freebsd/arch

Re: gdb и fork

Сообщение arch »

set follow-fork-mode режим
Устанавливает реакцию отладчика на вызов fork или vfork в программе. Вызов fork или vfork создает новый процесс. режим может быть:
parent
После ветвления отлаживается исходный процесс. Дочерний процесс выполняется беспрепятственно. Это поведение по умолчанию.
child
После ветвления отлаживается новый процесс. Родительский процесс выполняется беспрепятственно.
ask
Отладчик будет запрашивать один из этих вариантов.
show follow-fork-mode
Отображает текущую реакцию отладчика на вызов fork или vfork.


mitya.pp.ru/gdb/gdb_toc.html
Спасибо сказали:
Taurust
Сообщения: 3
ОС: Linux

Re: gdb и fork

Сообщение Taurust »

Не то это .. если мне нужна !одним! отладчиком контролировать несколько процессов, то как быть?
Спасибо сказали: