자식 프로세스를 생성해보자 그리고 이를 디버깅해보자
#include <iostream>
#include <unistd.h> // fork를 위한 라이브러리
using namespace std;
int main() {
cout << "this is fork test" << endl;
pid_t pid;
pid = fork();
if(pid < 0) exit(EXIT_FAILURE); // fork 실패
if(pid > 0) exit(EXIT_SUCCESS); // fork 성공, 부모 프로세스 종료
if (setsid() < 0) // 자식 프로세스가 세션 리더가 됨
exit(EXIT_FAILURE);
cout << "fork sucess, this is Child" << endl;
return 0;
}
이대로 실행을 한다면 아래와 같이 잘 실행될 것이다
하지만 이를 디버깅해보면 부모 프로세스가 종료되는 시점에 디버깅도 종료가 된다
어떻게 하면 자식프로세스로 자연스럽게 넘어갈 수 있을까?
브레이킹 포인트로 fork 전 지점을 확보
디버깅 모드로 진입
debugger console에 다음 기입 (하나씩 차례대로 기입)
```
set follow-fork-mode child
set detach-on-fork off
```
계속해서 디버깅