Как заставить GDB следовать execv? Не работает, несмотря на «follow-exec-mode»

Я написал две простые программы:

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

а также

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

Я их скомпилировал gcc -g для соответствующих выходных файлов. Я запускаю Ubuntu 10.10 с помощью gcc (Ubuntu / Linaro 4.4.4-14ubuntu5.1) 4.4.5.

Когда я отлаживаю первую программу с помощью GNU gdb (GDB) 7.2-ubuntu, я могу перейти к первому утверждению execv, но затем эти два файла просто продолжают работать. Даже если я установлю для follow-exec-mode значение new, я не смогу перейти ко второй программе. Когда я устанавливаю catch exec, gdb останавливается при каждом вызове execv (что-то вроде без связанного источника для второй программы, и я не могу выйти из gdb, так как он зависает !?), но я не могу перешагнуть через вызов в "новый" (поскольку exec заменяет процесс) подчиненная программа.

Так как это можно сделать? Должен быть способ вступить в новый процесс, верно? Я делаю что-то неправильно?

ура

Ответы на вопрос(2)

Ваш ответ на вопрос