programing

CLion을 사용하여 포크된 자식 프로세스를 디버그하는 방법

skycolor 2023. 10. 9. 22:26
반응형

CLion을 사용하여 포크된 자식 프로세스를 디버그하는 방법

저는 CLion의 내부 디버거(Linux의 gdb)로 리눅스 C 프로그램을 디버깅하고 있었습니다.그 프로그램은 내가 설정한 중단점에서 중단되기로 되어 있던 어린이 프로세스를 포크했습니다.하지만 디버거는 내가 들어가도 거기서 멈추지 않았습니다.set follow-fork-mode childgdb 패널 안에 있습니다.CLION으로 어떻게 그렇게 할 수 있을까요?

나는 @MarkusParker가 올린 답변을 따랐지만, 대신에set auto-load safe-path /저는 자식 과정과의 단절을 막곤 했습니다.이 지침은 제게 도움이 됩니다.

  1. 프로그램을 시작할 때 중단점을 설정합니다.자식 프로그램이 아닌 부모 프로그램).

  2. 디버거에서 프로그램을 시작합니다.

  3. 클론에서 디버거 콘솔(gdb라는 레이블이 있는 탭)로 이동하고 입력합니다.set follow-fork-mode child그리고.set detach-on-fork off.

  4. 디버깅을 계속합니다.

디버거의 GDB 탭을 사용하고 다음을 입력합니다.

set detach-on-fork off
set follow-fork-mode child

enter image description here

이 링크 디버거에 따르면: 멀티프로세스 대상 지원 Clion에서는 아직 지원되지 않습니다.set detach-on-fork off프레임에 스레드를 추가하지만 하위 프로세스를 제어할 수 없습니다.그리고 클라이온은 "다른 사람들이 여전히 실행 중임에도 불구하고 하위자 중 한 명의 종료를 디버깅 세션의 끝으로 취급합니다."

vScode에도 동일한 문제가 있는 것 같습니다.

설정했는지 확인합니다.set follow-fork-mode child갈림길에 들어서

언급URL : https://stackoverflow.com/questions/36221038/how-to-debug-a-forked-child-process-using-clion

반응형