Я должен отладить какой-то разветвленный процесс.Я хотел бы отлаживать как родительский, так и дочерний процессы.
Как и в другом вопросе, я активирую и «Режим без остановки» и «Автоматически отлаживать разветвленный процесс». введите описание изображения здесь Здесь возникла проблема: теперь, когда я добираюсь до инструкции fork, все останавливается, и я не знаю, как продолжить.Вот простой код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pid=fork();
if (pid>0)
{
printf("FATHER PROCESS");
} else if(pid<0)
{
printf("ERROR");
exit(1);
} else
{
printf("I'M THE CHILD PROCESS");
exit(2);
}
printf("\nEND");
return 0;
}
Запускается дочерний процесс, но я не знаю, что мне теперь делать.Я пробовал в затмении и в NetBeans, но у них та же проблема.Когда я использую консоль отладчика, набираю 'n', это вывод:
[Новый процесс 3077]
Чтение символов из / home / user / programmi / eclipse-workspace / provaFork / Debug / provaFork...сделанный.
Чтение символов из /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so...done.
Чтение символов из /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so...done.
Предупреждение:
Невозможно вставить точку останова 11.
Невозможно получить доступ к памяти по адресу 0x6d2
Невозможно вставить точку останова 10.
Невозможно получить доступ к памяти по адресу 0x6e0
Невозможно вставить точку останова 7.
Невозможно получить доступ к памяти по адресу 0x714
Команда прервана.
(gdb) [Переключение на поток 2.2 (процесс 3077)]
# 0 0x00007ffff7ac8b1c in ??()
Процесс 3077 - это дочерний процесс (я думаю).Если я наберу 'n' в другой раз, я получу:
Не могу найти границы текущей функции
Если я отключу «Автоматически отлаживать разветвленный процесс», процесс продолжается, ноя не могу отладить дочерний процесс.
Спасибо!