나는 리눅스 악마를 썼는데, 지금은 꽤 잘 돌아 간다.하지만 메모리가 누출된다. (몇 시간 후에는 60 %의 시스템의 메모리). 이상한 것은 새로운/delete 연산자 만 사용하고 main 함수 주위에 try/catch 블럭이있어서 새로운 것으로 던져진 예외가 아니라는 것입니다 - 추측 된 메모리 부족으로 인해 어떤 시점에서 segfaults가 발생합니다 .이상한 메모리 누출을 디버그하는 방법 (C++)
나는 valgrind를 사용했지만 한 번만 작은 누출을 발견하고 아무것도 발견하지 못했습니다. 나는 gdb를 시도했지만, 앱이 -g -rdynamic
플래그로 컴파일 되었기 때문에 모든 주소를 함수 이름으로 변환하지 않는다.
메모리 누수 원인을 파악하는 데 사용할 수있는 몇 가지 메모리 디버깅 방법을 알려주시겠습니까?
세그먼트 결함은 일반적으로 메모리가 부족하기 때문에 발생하지 않습니다. 메모리가 잘못된 방식으로 액세스되거나 (야생, 널 또는 삭제 된 포인터를 역 참조) 또는 관리가 잘못 되었기 때문에 발생합니다 (이중 삭제, 삭제 []/삭제 불일치 등). 프로그램이 나중에 실패 할 수 있도록 메모리를 손상시킬 수 있기 때문에 오류가 항상 발생하지는 않습니다. –