C로 작성된 linux-daemon에서 버그를 찾으려고합니다. 데몬은 무한 루프 응답으로 실행되어야합니다. 가끔은 명백한 이유없이 멈추게됩니다. 코어 덤프가 생성되지 않습니다. 어떤 커널 segfault의 메시지는/var/log/메시지코어 덤프없이 알 수없는 이유로 유닉스 데몬이 멈 춥니 다
우리는 이미 프로세스의 죽음이 특정 요청에 의해 발생하지만 버그가 발생 소스 내의 위치를 찾을 수 있다는 사실을 알고에 기록되지 않습니다. 여기
내가 지금까지 무슨 짓을했는지 : 권한을 확인해야하므로 -g -Wall와- 재 컴파일, -ABRT와 ulimit를 -c 무제한
- 죽이기 시작,이 코어 덤프를 생성합니다
- char * p = NULL, c = * p; 코드 어딘가에. 이것은 코어 덤프와 kern.info segfault syslog 메시지를 생성합니다. 그리고 gdb a.out 코어는 완벽한 백 트레이스를 보여줍니다.
이 모든 것이 저의 잘못된 포인터로 인한 문제는 아니라고 생각합니다. 모든 exit() - 명령문은 syslog() - 명령문보다 우선하기 때문에 자체 중지 프로세스가 아닙니다. 그리고이 시스템에는 프로세스를 죽일 사용자가 없습니다.
코어 ump가없는 유닉스 프로세스를 죽일 수있는 다른 방법은 무엇입니까 ???
피터