gdb에서 백 트레이스를 볼 때 내 응용 프로그램은 때때로 segfaults가되고 주로 malloc() 및 malloc_consolidate()에 있습니다.malloc() 및 malloc_consolidate()의 Segfaults
컴퓨터의 메모리가 충분한 지 확인하고 스와핑을 시작하지 않았습니다. 데이터 분할 및 최대 메모리 크기에 대해 ulimits를 확인했으며 둘 다 '무제한'으로 설정되었습니다. 또한 valgrind에서 응용 프로그램을 실행했는데 메모리 오류를 찾지 못했습니다.
이제 이러한 세그 폴트를 일으킬 수있는 다른 아이디어가 있습니다. 어떤 아이디어?
업데이트 : 이후 가 다른 응용 프로그램의 libc의 메모리 구조를 부수고 또는 각 프로세스에 대해 별도의 구조가 있음이 될 수 Valgrind의 (또는 ptrcheck) 아무것도를 찾는 아니에요?
valgrind에서 충돌 했습니까? –
아니요, 충돌하지 않았습니다. 그것의 실시간 응용 프로그램과 valgrind 내가 단지 그것에 매우 가벼운 하중을 넣을 수 있고 일반적으로 더 무거운 하중 아래 충돌합니다. –
어떤 운영 체제입니까? 툴체인의 판단에 따르면, 마치 리눅스처럼 보일 것입니다. 이 경우, 아니오, 다른 응용 프로그램은 힙을 휴지통으로 만들 수 없습니다. 그것은 당신의 어플리케이션에있는 것입니다. 로드하는 동안 만 이런 일이 발생하면 훨씬 더 까다로워집니다 ...로드 상태에서 다른 점은 무엇입니까? 어떻게하면 힙을 휴지통으로 만들 수 있습니까? Valgrind에서 실행되는 동안 가능한 한 최선을 다해 응용 프로그램을 "고문"해보십시오.로드 할 때 존재할 수있는 조건을 어떻게 재현 할 수 있습니까? 어쩌면 메모리를 무상으로 할당 할 수 있을까요? –