推 Bencrie: 它解法都寫在上面了,還寫了兩個 = =08/12 17:23
→ Bencrie: 總之它需要 glibc 的 debug symbols,想辦法生給它08/12 17:28
→ Bencrie: 看 yocto 有沒有辦法 build debug 版的 glibc 吧08/12 17:28
兩個方法我其實都有試過了
方法1:這個embedded system的memory超級爆炸小,只有100MB,無法安裝glibc(連安裝
的指令都無法下)
方法2:我直接把yocto中non-stripped的版本貼進去之後,kernel直接crash了QQ 連ls都
無法下
※ 編輯: s4300026 (114.137.98.79 臺灣), 08/13/2020 09:39:25
→ bitlife: 雖然我的經驗是古董,但看起來是應該compile time error,08/13 11:32
→ bitlife: 是不是目前訊息的編譯模式是在windows的debugger用的? 真08/13 11:32
→ bitlife: 正runtime也不可能要求你保留debug info08/13 11:32
→ bitlife: sorry,看到了你文中的最後一段有提到是target runtime08/13 11:33
→ bitlife: error,除非target夠力,不然debug info都是開發環境上使用08/13 11:35
→ bitlife: 直接回到錯誤本身,意思是你沒提一那個must-be-redirected 08/13 11:36
→ bitlife: function,感覺像是so要呼叫這個index實作,但你沒提供之類08/13 11:37
→ bitlife: 你沒提供 08/13 11:37
推 Bencrie: 你先在 PC 上跑 valgrind debug 吧08/13 12:38
→ Bencrie: 在板子上就算能跑 valgrind,速度也很難接受吧08/13 12:39
→ Bencrie: 只是為了抓記憶體錯誤或 leaks 你可以用 perf08/13 12:40
→ Bencrie: 講錯是 sanitizer08/13 12:40
之所以會選擇cross compile valgrind到板子上來用,是因為我的程式中有用到neon int
rinsics,只能在ARM的環境下跑,compile出來的程式無法在開發環境這端執行(我現在
是在vmware的linux上開發)
ASAN當初也有survey,但是他不支援ARM上linux的環境
※ 編輯: s4300026 (114.137.98.79 臺灣), 08/13/2020 14:44:58