无法正确调试fork()调用

时间:2016-09-26 19:13:25

标签: c linux operating-system gdb fork

int spawn( char* program, char** args) {

    pid_t child_pid;

    child_pid = fork(); 

    if( child_pid!= 0) {  // so this returns if the forking fails? Why would a fork fail?
        return (int)child_pid;
    }

    else {
        execvp(program, args);

        return (int)child_pid;
    }
}

我正在尝试调试以下代码。问题是,当父母调用它时,我的监视列表中的child_pid值是一个大数字(大于零),但程序本身确实在else块中。 我想看看它是如何进行的,其他块购买我的gdb调试器似乎在child_pid返回其大数字后停止

0 个答案:

没有答案