setpgid (0, 0) завершается ошибкой при отладке с помощью gdb - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь отладить приложение пользовательского пространства linux, которое создает группу процессов с setpgid(0,0). При запуске на терминале он не возвращает ошибок и работает как положено. Но при отладке с gdb возвращается EPERM.

Я подозреваю, что это потому, что GDB присоединяет мой процесс, как ребенок. Поэтому невозможно установить мой процесс как родительский с setpgid(0,0). Это верно? Если да, то нет ли способа отладить этот случай с помощью gdb?

Edit:
Окружающая среда:
Ubuntu 12.04 Kernel 3.11.0-15-generic

Используя простой код ниже, при запуске на терминале я получаю success!!. Если я отлаживаю с помощью gdb (настроенного на Eclipse Luna), я получаю setpgid: Operation not permitted.

#include <sys/types.h> 
#include <unistd.h> 
#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
    int err = setpgid((pid_t)0, (pid_t) 0); 
    if (err < 0) 
        perror("setpgid"); 
    else
        printf("success!! \n");
    exit(err); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...