作者s4300026 (s4300026)
看板Linux
標題[問題] Cross Compile Valgrind
時間Wed Aug 12 15:00:08 2020
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://webptt.com/m.aspx?n=bbs/Linux/M.1597215610.A.095.html
1F:推 Bencrie: 它解法都寫在上面了,還寫了兩個 = =08/12 17:23
2F:→ Bencrie: 總之它需要 glibc 的 debug symbols,想辦法生給它08/12 17:28
3F:→ 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
4F:→ bitlife: 雖然我的經驗是古董,但看起來是應該compile time error,08/13 11:32
5F:→ bitlife: 是不是目前訊息的編譯模式是在windows的debugger用的? 真08/13 11:32
6F:→ bitlife: 正runtime也不可能要求你保留debug info08/13 11:32
7F:→ bitlife: sorry,看到了你文中的最後一段有提到是target runtime08/13 11:33
8F:→ bitlife: error,除非target夠力,不然debug info都是開發環境上使用08/13 11:35
9F:→ bitlife: 直接回到錯誤本身,意思是你沒提一那個must-be-redirected 08/13 11:36
10F:→ bitlife: function,感覺像是so要呼叫這個index實作,但你沒提供之類08/13 11:37
11F:→ bitlife: 你沒提供 08/13 11:37
12F:推 Bencrie: 你先在 PC 上跑 valgrind debug 吧08/13 12:38
13F:→ Bencrie: 在板子上就算能跑 valgrind,速度也很難接受吧08/13 12:39
14F:→ Bencrie: 只是為了抓記憶體錯誤或 leaks 你可以用 perf08/13 12:40
15F:→ 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