作者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/cn.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