일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- OSR
- uftrace
- LLVM 난독화
- linux thread
- Android
- so inject
- pinpoint
- Injection
- initial-exec
- LLVM
- Linux packer
- on stack replacement
- 안티디버깅
- apm
- v8 optimizing
- LLVM Obfuscator
- anti debugging
- tracing
- linux debugging
- v8 tracing
- Linux custom packer
- TLS
- pthread
- 난독화
- android inject
- Obfuscator
- custom packer
- thread local storage
- tracerpid
- on-stack replacement
Archives
- Today
- Total
Why should I know this?
gcc를 분석하는데 도움이 되는 컴파일 옵션 본문
만약 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