Отладка C разветвленного процесса, остановившегося на вилке - PullRequest
1 голос
/ 07 июня 2019

Я должен отладить какой-то разветвленный процесс.Я хотел бы отлаживать как родительский, так и дочерний процессы.

Как и в другом вопросе, я активирую и «Режим без остановки» и «Автоматически отлаживать разветвленный процесс». введите описание изображения здесь Здесь возникла проблема: теперь, когда я добираюсь до инструкции 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' в другой раз, я получу:

Не могу найти границы текущей функции

Если я отключу «Автоматически отлаживать разветвленный процесс», процесс продолжается, ноя не могу отладить дочерний процесс.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...