저는 리눅스에서 gcc 4.8.5를 사용합니다. 주소 살균기를 사용하고 싶지만 프로그램에 대한 정보를 반환하지 않습니다. 플래그 :gcc - 주소 살균제 사용법
SET(CMAKE_CXX_FLAGS "-Wall -Wno-error -g -std=c++11 -fno-omit-frame-pointer -fsanitize=address")
SET(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
링크 라이브러리 :
target_link_libraries(testcpp asan)
메모리 누수와 테스트 프로그램 :
int main()
{
int *prt = new int;
return 0;
}
에 어떤 문제가 있습니까? 최근 데비안/SID/- 64에 GCC7 함께
프로그램을 명령 줄에서 직접 컴파일하십시오 ('cmake'는 우리를 혼란스럽게합니다). 질문에 컴파일 명령을 표시하십시오. –
BTW GCC4.8은 상당히 오래되었으며 주소 소독기가 많이 발전했습니다 (특히 GCC 5 및 GCC 6). ** 새로운 GCC **를 사용해보십시오 ** (가능하면 GCC 7) –
이미'-fsanitize = address'를 지정했다면'asan'에 링크 할 필요가 없다는 것이 나의 이해입니다. 또한 실제로는 살균제가 실행되도록 프로그램을 실행해야합니다. –