2013-01-09 5 views
0

I는 다음의 코드로 세그먼트 폴트를 받고 있어요 : GDB를 실행하는 경우 이상한 segfault의 :: malloc에 ​​

char* addr = (char*)std::malloc(bytes); 

내가 bytes851984의 값을 갖는 것을 알 수있다. 내가 아는 한 큰 일이 아니어야합니다. 나는 내 삶을 위해 그걸 잘못 본 것을 볼 수 없다. 누구 제안있어?

실제는 segfault 오류는 다음과 같습니다

Program received signal SIGSEGV, Segmentation fault. 
0x00007ffff674dd75 in malloc_consolidate (av=0x7ffff6a87720) at malloc.c:4254 
+1

이런 일이 이전에 프로그램의 손상으로 인해 발생한 것은 제 경험이었습니다. 그런 것들을 찾기 위해 전기 울타리 나 valgrind와 같은 것을 사용할 수 있습니다. – karoberts

답변

4

있다 (대부분) 할당에 실패 malloc 원인 힙 구조를 손상 어딘가 이전 코드에서 문제. 이 문제를 디버그하려면 valgrind과 같은 메모리 오류 감지 도구를 사용해보십시오.