Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Terry Li (terry.li@nextdrive.io)
- 我們現在的compiler是GNU的,不是android,再加上build system也不是android,要debug segfault目前是比較困難的
- 我們的compiler flags disable掉很多debug function所以不像android在crash時可以backtrace
- 這部份需要另外做,例如利用valgrind的library來監控heap usage
- 好像叫libmem什麼的
- ltrace在編譯時要加-rdynamic和-g
- strace不用,不過strace比較難看得出在幹嘛
- 因為是system call
- 但配合自己寫的部份下去看,應該也不錯
- strace和ltrace可以看得出在segfault之前發生什麼事
- 但是要用command line跑,不能用rc方式啟動
- Jon Lin (jon.lin@nextdrive.io)
- 剛剛跑了半小時,還在跑,不好複製。了解,我來試一下 "ltrace在編譯時要加-rdynamic和-g"
- Terry Li (terry.li@nextdrive.io)
- 系統沒有ltrace
- 但有strace
- Jon Lin (jon.lin@nextdrive.io)
- 所以只能用strace
- William (william.liang@nextdrive.io)
- 沒有debugger的option是 不方便做 source level的追蹤, 不過如果單純對segfault要定位, 還是很方便的喔, 直接attach process 在產生問題的時候他會停下來, 我們就可以知道它是發生在哪一個 function 裡頭。 如果 symbol 被移除掉, 我們也可透過 adb 在進行反組譯, 再透過對 binary做objdump, 找出跟原始碼對應的關係 就可以進行搜尋 還是可以定位出來 :)
- Terry Li (terry.li@nextdrive.io)
- 如果一直可以複製,會比較好解
- William (william.liang@nextdrive.io)
- 以前在沒有 ICE 的情況要去找 Kernel 的問題的時候 常常有的時候會需要用到這個方式
- Jon Lin (jon.lin@nextdrive.io)
- 不熟得研究一下
- William (william.liang@nextdrive.io)
- Strace 好用喔, 不太需要去學
- Terry Li (terry.li@nextdrive.io)
- jon先試看看能否百分百複製
- 在複製前不要改code
- Jon Lin (jon.lin@nextdrive.io)
- 目前還在跑,沒死
- Terry Li (terry.li@nextdrive.io)
- 可能懷疑的地方直接改,可能問題修正了,也有可能讓它變難複製
- Jon Lin (jon.lin@nextdrive.io)
- 了解
- Terry Li (terry.li@nextdrive.io)
- 再來是有些常見的... 就是用來print debug message的ALOG或printf,也會segfault
- Jon Lin (jon.lin@nextdrive.io)
- 沒錯
- printf a null string
- Terry Li (terry.li@nextdrive.io)
- 在開發階段時,我會故意在CFLAGS裡加-Wall及-Wextra有些warning就會告訴你這地方怪怪的
- Jon Lin (jon.lin@nextdrive.io)
- good comment
- compile warning 很有用
- Terry Li (terry.li@nextdrive.io)
- 對~
- 經常去修正compile warning也會讓coding進步
- Jon Lin (jon.lin@nextdrive.io)
- 沒錯
- Jon Lin (jon.lin@nextdrive.io)
- 千萬不能忽略他們
- William (william.liang@nextdrive.io)
- Exactly, 嵌入式系統由於 debug 環境比較有限制,通常都會建議至少用 -WallWilliam (william.liang@nextdrive.io)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement