Como fazer o gdb seguir execv? Não funciona apesar do "modo de execução seguinte"

Eu escrevi dois programas simples:

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

e

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

Eu os compilei com o gcc -g para os arquivos de saída correspondentes. Estou executando o Ubuntu 10.10 usando o gcc (Ubuntu / Linaro 4.4.4-14ubuntu5.1) 4.4.5.

Quando estou depurando o primeiro programa com GNU gdb (GDB) 7.2-ubuntu, posso avançar até a primeira instrução execv, mas depois os dois arquivos continuam funcionando. Mesmo se eu definir o modo de execução seguinte para novo, não posso entrar no segundo programa. Quando eu defino catch exec, o gdb pára em cada chamada para execv (de alguma forma, sem vinculado a fonte para o segundo programa, e eu não sou capaz de sair do gdb, como ele trava !?), mas eu não sou capaz de passo sobre a chamada para o "novo" (como exec substitui o processo) programa inferior.

Então, como isso pode ser feito? Deve haver uma maneira de entrar no novo processo certo? Estou fazendo algo errado?

Felicidades

questionAnswers(2)

yourAnswerToTheQuestion