2012-06-07 3 views
5

중단 트랩 (오류 코드 12)으로 실패한 프로그램을 실행하고 있습니다. 오류를 디버깅하려면 valgrind를 실행 중이지만 valgrind 자체를 실행할 때마다 "Killed"메시지와 함께 충돌하고 끝 메시지 힙 요약 등은 표시되지 않습니다. 나는 이것에 대해 Google이나 SO에서 아무 것도 찾을 수 없으며 누군가이 오류의 원인과 디버깅 방법에 대해 밝힐 수 있기를 희망합니다.valgrind "Killed"메시지

도움을 주시면 감사하겠습니다.

+1

[이 포럼 게시물] (http://www.linuxquestions.org/questions/slackware-14/valgrind-crashes-at-start-up-with-killed-error-message-437863/)는 " valgrind가 어떻게 실행 되든간에 "죽임을 당했다"는 표시는 귀하의 경우에도 동일합니까? 'valgrind --help'로 시도해보십시오. – Collin

+0

아니요, valgrind는 다른 상황에서도 정상적으로 실행됩니다. 나는 오늘 이전에 같은 컴퓨터에서 이전 메모리 오류를 디버그하곤했다. 이 특별한 경우에만 발생합니다. – Jack

답변

5

나는 프로세스가 커널의 Out of Memory 시스템에 의해 죽어 가고 있다고 생각한다. 시스템이 메모리가 부족하여 갇힐 수없는 방식으로 프로세스를 죽일 경우 valgrind는 말하지 않고 종료된다. 아무것도.

아마도 프로그램은 많은 메모리를 사용하며 메모리의 정의를 추적하기 위해 추가 메모리가 필요한 valgrind에서 실행될 때 사용 가능한 메모리가 충분하지 않으며 (의심 할 여지없이 매우 큰) valgrind 프로세스가 종료 될 것입니다.

맞다면 valgrind에서 프로그램을 실행할 수 있으려면 더 많은 메모리가 있거나 더 많은 스왑을 필요로 할 것입니다.

+0

많은 양의 메모리가 반복적으로 할당되었지만 루프에서 완전히 할당 해제되지 않아서 생각보다 훨씬 많은 메모리 사용량이 발생했습니다. 통찰력에 감사드립니다! – Jack

+0

메모리 문제로 인해 valgrind가 죽는 지 확인하는 방법이 있습니까? –

0

예를 들어 프로세서의 메모리 공간에서 액세스하는 자체 메모리가있는 보조 프로세서 (GPU, FPGA)를 사용하는 것과 같이 시스템이 비표준 메모리 할당을 사용하는 경우에도 발생할 수 있습니다.

우리의 경우 공급 업체는 valgrind와 함께 작동하도록 프레임 워크를 수정해야했습니다.