2014-11-12 3 views
1

나는 충돌 핸들러에 설치되어 있습니다.추출 스택 트레이스는

때때로 이러한 코어 덤프가 매우 큽니다 (종종 30GB 이상) 될 수 있습니다. 이러한 경우 사용자는 응용 프로그램이 중지되기 전에 코어 덤프가 디스크에 기록되는 동안 대기하고 대기합니다.

이러한 매우 큰 코어 덤프를 비 차단 방식으로 처리하는 방법에 대한 제안 사항은 무엇입니까? 나는 코어 덤프 그 자체에 관심이 없다. 스택 추적은 가치가있다.

소스에 액세스 할 수 없으므로 https://serverfault.com/questions/627747/non-blocking-core-dump-on-linux과 같은 대답은 그다지 실용적이지 않습니다.

감사합니다.

답변

2

소스에 액세스 할 수 없으므로 https://serverfault.com/questions/627747/non-blocking-core-dump-on-linux과 같은 답변은 실용적이지 않습니다.

응용 프로그램이 동적으로 링크되어있는 경우 LD_PRELOAD Google 검색기를 사용하면 다소 실용적입니다.

또 다른 가능한 대안은 http://github.com/tbricks/tbstack입니다.

확실히 30GB의 RAM을 버리면 버려집니다. 낭비입니다.

+0

고마워요! tbstack는 매력처럼 일했습니다! 스택의 함수 이름을 어떻게 해독 할 수 있는지에 대한 제안 사항이 있습니까? Btw, 내가 일하는 프로덕션 환경이 매우 많은 수의 타사 도구를 지원하므로 LD_PRELOAD는주의해야합니다. 각 도구는이 변수 세트로 테스트해야합니다. 다시 한 번 감사드립니다! – matthewatabet

+0

흠 ... 사실 이건 내 경우에는 효과가 없을 수도 있습니다. 정상적인 프로세스에서 유틸리티를 실행하면 예상대로 작동합니다. 그러나 core_pattern 후크의 일부로 최근에 충돌 한 프로세스에서 실행하면 0k가 프로세스에서 복사됩니다. 그게 기대 되니? – matthewatabet