개발, 웹, 블로그/Linux 상식

[Sanitizer] CMake 환경에서 Sanizier를 이용하여 Memory Tracing하기

삼성동고양이 2024. 3. 14. 14:22
반응형
  1. CMakeLists.txt에 아래와 같이 FLAG를 추가해준다.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fsanitize=address")
  1. 실행시 환경 변수값을 포함하여 실행해준다.

    LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5 {EXECUTABLE BINARY}
  2. expor를 하는 방법도 있다.
    하지만 추천하지 않는다. 커맨드도 sanitizer에 물려서 제대로 실행이 안된다;

    $ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5
반응형