내 응용 프로그램 내에서 메모리 누수를 디버깅하려고합니다. 유출 된 객체는 (힙을 파괴하기 전에) 식별하기가 다소 어려우며 유사한 객체가 많이 생성됩니다. 각 세션마다 동일한 주소를 사용한다면 상당히 쉽게 할 수 있습니다. 따라서 실행 파일의 링커 속성에서 /FIXED
및 /DYNAMICBASE:NO
을 사용하여 ASLR을 사용하지 않으려 고합니다.MSVC2015의 고정 된 기본 주소
그러나 이것은 원하는 결과를 얻지 못하는 것 같습니다. 주소는 매번 다를 수 있습니다. 또한 main
에있는 argv
의 주소조차도 세션마다 다릅니다. 설정해야 할 몇 가지 추가 매개 변수가 있습니까, 아니면 어떻게 든이 깃발의 목적을 오해하고 있습니까?
누수를 찾는 가장 좋은 방법은 예를 들어 Windows Crt 디버그 기능을 사용하는 것입니다. 여기에 소개 : https://msdn.microsoft.com/en-us/library/x98tx3cf.aspx – BitTickler
@BitTickler - 어떤 개체가 부검을 유출했는지 이미 알고 있습니다 (CRT 덤프가 알려줄 것 같이 - 비슷한 누수보고 시스템),하지만 할당 된 때 (그리고 차례로 참조 할 때) 객체를 식별하고 싶습니다. 따라서 할당 주소가 일정하게 유지되어야합니다. – MuertoExcobito
Crt 디버그 기능을 사용하면 매우 편리 할 수 있습니다. 마찬가지로 개체의 할당 번호에 중단 점을 설정하십시오. 그래서 crt를 사용하여 문제를 일으키는 할당을 확인한 후 다음 실행에서는 문제를 일으킬 수 있습니다. 그것은 대개 성공에 대한 나의 길입니다 .... 저, 그리고 단위 테스트 작성하기 ... 저는 실제 시스템에서 논리적 오류를 발견하는 것이 꽤 시간 낭비라고 생각하기 때문에 언급합니다. 스레딩 관련 문제가있는 경우 물론 때로는 그렇게 할 수 있습니다. – BitTickler