Why should I know this?

gcc를 분석하는데 도움이 되는 컴파일 옵션 본문

Knowledge/Tracing

gcc를 분석하는데 도움이 되는 컴파일 옵션

die4taoam 2018. 6. 25. 13:12
만약 gcc를 사용하는 중에 의도치 않게 메모리 관련 에러가 발생한 경우,
gcc에서 제공하는 스펙이나 표준 스펙에서 벗어난 코딩을 했을 경우가 높다.
하지만 gcc가 내재한 버그일 가능성은 여전히 존재한다.

gcc의 최적화는 각 단계가 독립적으로 진행되기 때문에 이전 단계에서 발생한 버그가 차후 스텝에 영향을 미쳐
이를 디버깅하는게 절망적으로 어렵게 느껴지기도 한다.

이를 gcc 측에서도 인지하고 있기 때문인지 각 단계마다 결과물을 dump하여 확인할 수 있도록 제공하고 있다.


gcc는 front-end에서는 tree라는 구조체를 메인으로 사용하며,

front-end가 종료되는 시점에 tree를 rtl로 변환하여 back-end에 전달한다.


-fdump-tree-all

; gcc front-end의 각 스텝의 결과물을 파일로 저장해준다.


-fdump-rtl-all

; gcc back-end의 각 스텝의 결과물을 파일로 저장해준다.




'Knowledge > Tracing' 카테고리의 다른 글

Tracing 에 대한 고찰 (feat, pinpoint)  (0) 2019.07.15
Tracing을 도와주는 컴파일 옵션들.  (0) 2018.06.10
Comments