반응형
Daemon 디버깅방법
gdb를 사용하여 데몬(daemon)을 디버깅하는 방법입니다.
이미 실행 중인 데몬에 gdb를 붙이는 방법
이미 실행 중인 데몬 프로세스에 gdb를 붙이는 방법입니다.
- 데몬의 PID(프로세스 ID) 확인: 먼저 디버깅하려는 데몬의 프로세스 ID를 알아야 합니다.
- ps, pgrep 명령어 등을 사용해 PID를 확인할 수 있습니다.
-
ps -ef | grep your-daemon-name
- gdb로 프로세스에 연결: 확인한 PID를 이용해 gdb를 실행합니다. 이렇게 하면 실행 중인 프로세스에 gdb가 연결됩니다. 이후 일반적인 gdb 명령어를 사용해 디버깅할 수 있습니다.
-
gdb -p <PID>
데몬을 gdb를 통해 직접 실행하는 방법
데몬이 실행되기 전에 gdb를 통해 디버깅하는 방법입니다.
- 데몬의 실행 파일을 gdb로 실행: 데몬의 실행 파일을 gdb로 직접 실행합니다.
-
gdb /path/to/daemon
- 데몬의 초기화를 방해하지 않도록 설정: 데몬은 보통 백그라운드에서 실행되기 위해 fork()를 사용합니다. gdb에서 이 상황을 처리하기 위해 set follow-fork-mode 명령어를 설정해야 합니다.이 명령어는 fork() 호출 시 자식 프로세스를 따라가도록 gdb를 설정하는 것입니다.
-
(gdb) set follow-fork-mode child
- 데몬 실행: gdb 안에서 데몬을 실행합니다.데몬이 실행되면서, 자식 프로세스가 생성되면 gdb가 그 자식 프로세스를 디버깅할 수 있게 됩니다.
-
(gdb) run
주의사항
- 데몬이 특정 권한(예: root)으로 실행되어야 하는 경우, gdb도 동일한 권한으로 실행해야 합니다.
- gdb를 통해 실행하면 데몬이 정상적으로 종료되지 않거나, 신호 처리에 문제가 생길 수 있으므로, 디버깅이 끝난 후 데몬을 정상적으로 재실행하는 것이 좋습니다.
위 방법들을 사용해 gdb로 데몬을 디버깅할 수 있습니다.
반응형
'다양한 TIP' 카테고리의 다른 글
QTextEdit 에 글자 그대로 덮어쓰기/추가하기 방법(append, setText, insertPlainText) (0) | 2024.08.24 |
---|---|
git commit 시 끊어졌을 때 해결방법 ('.git/index.lock': File exists.) (0) | 2024.08.22 |
bashrc 작성 후 적용방법(ls 색깔 변경) (0) | 2024.08.12 |
댓글