看板 Linux 關於我們 聯絡資訊
https://i.imgur.com/IAES1T7.jpg 使用yocto cross compile了valgrind之後丟到embedded system上(cpu=arm, os=linux ) 結果出現了這個error message,google不太到解決方法,請問大家有遇過這個問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.98.79 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1597215610.A.095.html
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