이 일반적인 방법을 디버깅을 위한 C++매크로가?
문제
일반적으로,나는 때때로 사슬의 중첩된 매크로 몇 전처리 조건적 요소들의 정의.이 괴로울 수 있는 디버깅하기 때문에 하드 직접 확인하기 위해서는 실제 코드는 실행되고 있습니다.
얼마 전에 나는 막연하게 기억을 찾는 compiler(gcc)플래그를 확장하고 있었는데 문제가 작동이 점점에서습니다.
해결책
gcc-E 것 출력 전처리된 소스 stdout.
다른 팁
에 대한 MSVC 사용자,당신을 마우스 오른쪽 단추로 클릭하면 파일/프로젝트,설정을 확인하고 변경의 파일 속성을 출력 전처리된 소스(일반적으로 obj directory).
이 적용되지 않을 수 있습니다 여러분의 상황에서는,하지만 매크로 진행을 방해 디버깅,그리고 자주 남용하고 피할 수 있습니다.
를 대체할 수 있습니다 그들에게 인라인 기능이나 그렇지 않으면 그들을 모두 제거까?
당신은 아마 시작 멀리 움직이 양식을 매크로를 사용하여 시작 인라인 및 템플릿입니다.
매크로는 오래된 도구,오른쪽에 도구로 때로는.마지막으로 기억 printf 는 당신의 친구(실로 printf 없는 나쁜 친구를 때는 멀티스레드는 물건)
디버깅 dissasembly 상징으로 로드합니다.
gcc-저장-온도 작성됩니다.i(또는.ii 파일에 대한 C++)는 출력의 C 전처리기 전에,그것은 가을 컴파일러입니다.이될 수 있습니다.
GCC 와 호환되는 컴파일러-E 옵션을 사용하는 출력 전처리된 소스 표준다.
gcc -E foo.cpp
태양 스튜디오도 이것을 지원하기:
CC -E foo.cpp
하지만 더 나은입니다-xdumpmacros.자세한 정보를 찾을 수 있습니다 에서 태양 문서도 있습니다.