Jak zrobić gdb follow execv? Nie działa pomimo trybu „follow-exec”

Napisałem dwa proste programy:

int main(int ac, char **argv ) {
    execv( "/home/me/Desktop/execvtest2", argv );
}

i

int main(int ac, char **argv ) {
    execv( "/home/me/Desktop/execvtest1", argv );
}

Skompilowałem je za pomocą gcc -g do odpowiednich plików wyjściowych. Używam Ubuntu 10.10 przy użyciu gcc (Ubuntu / Linaro 4.4.4-14ubuntu5.1) 4.4.5.

Kiedy debuguję pierwszy program z GNU gdb (GDB) 7.2-ubuntu, mogę przejść do pierwszej instrukcji execv, ale wtedy te dwa pliki nadal działają. Nawet jeśli ustawię tryb follow-exec na nowy, nie mogę przejść do drugiego programu. Kiedy ustawiam catch exec, gdb zatrzymuje się przy każdym wywołaniu execv (niektóre jak bez źródła połączonego dla drugiego programu, a ja nie jestem w stanie zamknąć gdb, jak to się trochę zawiesza !?), ale nie jestem w stanie przejść przez połączenie do „nowego” (jak exec zastępuje proces) gorszego programu.

Jak to zrobić? Musi istnieć sposób na wkroczenie w nowy proces, prawda? czy robię coś źle?

Twoje zdrowie

questionAnswers(2)

yourAnswerToTheQuestion