[c++] MINGW와 산탄총 테스트

MINGW(Minimalist GNU for Windows)는 윈도우에서 GCC(GNU Compiler Collection) 컴파일러를 실행하기 위한 도구체이다. 산탄총(sanitizer)은 코드에서 버그를 찾는 디버깅 도구이다. 이 테스트에서는 MINGW를 사용하여 산탄총을 실행하는 방법을 알아보겠다.

MINGW 설치

MINGW 다운로드 페이지에서 최신 버전의 MINGW를 다운로드하여 설치한다.

산탄총 테스트

#include <iostream>

int main() {
    int* p = new int[10];
    for (int i = 0; i < 11; ++i) {
        std::cout << p[i] << std::endl;
    }
    delete[] p;
    return 0;
}

위 코드에는 메모리 누수와 인덱스 초과 접근 등의 문제가 있다. 이제 산탄총을 이용하여 이러한 문제를 찾아보자.

산탄총을 이용한 빌드

다음과 같이 코드를 컴파일하고 산탄총을 사용하여 실행한다.

g++ -fsanitize=address -g test.cpp -o test
./test

산탄총은 메모리 누수나 인덱스 초과 접근 같은 문제를 발견할 것이다.

이제 MINGW를 사용하여 산탄총 테스트를 실행하는 방법에 대해 알아보았다.

참고