나는 하루 종일 코드를 실행하고 있습니다.[]을 (를) 삭제하지 못했습니다. 이유를 찾는 방법은 무엇입니까?
delete [] p
뒷면 추적 (GDB 사용) :
내가 발견 할0x00007f4f709f2885 in raise() from /lib64/libc.so.6
0x00007f4f709f4065 in abort() from /lib64/libc.so.6
0x00007f4f70a2f7a7 in __libc_message() from /lib64/libc.so.6
0x00007f4f70a350c6 in malloc_printerr() from /lib64/libc.so.6
무슨 일이 실패 삭제 원인 : 일부 포인터를 해제하려고 할 때 는 일주일에 한 번, 그것은 충돌 삭제 중복 또는 다른 것. 어떻게 할 수 있습니까?
사람들이 당신을 도울 수 있기를 원하면 첫 번째 단계는 실제로 코드를 게시하는 것입니다. 일반적인 "어떻게 이런 종류의 문제를 디버깅합니까?"라는 조언은 당신이 원하는 것입니다. 삭제가 호출 될 때마다 로깅을 시작합니다. 누가 언제, 왜 호출했는지 기록합니다. 그것을 통해 빗질을 시작하여 버그의 출처를 찾으십시오. – Oren
더 많은 코드를 보여줘야합니다. valgrind를 사용해 볼 수도 있습니다. – goji
버그를 찾기 위해 valgrind를 통해 프로그램을 실행하는 것이 좋습니다. – Grizzly