- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经查看了与此错误相关的答案。但是,我的问题是,一旦我有了 libc 的 debuginfo,我应该将该库放置在什么位置,以便 valgrind 能够看到它?
我已经下载了 valgrind 并针对我的目标环境进行了交叉编译。我尝试了以下所有不同的组合:
最后但并非最不重要的一点是,以下是实际错误:
==29946== Memcheck, a memory error detector
==29946== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==29946== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==29946== Command: /bin/my_prog
==29946==
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind:
valgrind: A must-be-redirected function
valgrind: whose name matches the pattern: strcmp
valgrind: in an object with soname matching: ld-linux-armhf.so.3
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-armhf.so.3
valgrind:
valgrind: Possible fixes: (1, short term): install glibc's debuginfo
valgrind: package on this machine. (2, longer term): ask the packagers
valgrind: for your Linux distribution to please in future ship a non-
valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
valgrind: that exports the above-named function using the standard
valgrind: calling conventions for this platform. The package you need
valgrind: to install for fix (1) is called
valgrind:
valgrind: On Debian, Ubuntu: libc6-dbg
valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo
valgrind:
valgrind: Note that if you are debugging a 32 bit process on a
valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo
valgrind: package (e.g. libc6-dbg:i386).
valgrind:
valgrind: Cannot continue -- exiting now. Sorry.
最佳答案
我遇到了同样的问题,解决方法如下:
将/lib 路径中的 ld-xx.so 替换为调试版本。
这是我的案例。我正在使用 Yocto 构建 rootfs,因此将 poky/build/tmp/work/xxxx/glibc/2.26-r0/image/lib/ld-2.26.so
从构建路径复制到 Linux FS路径 /lib
,替换发布版本的原始 /lib/ld-2.26.so(和 ld-linux-armhf.so.3)
。
完成此操作后,valgrind 工作正常。
警告:在正在运行的系统上更换加载程序可能会导致系统变砖!这些步骤有效:
关于valgrind 请求 debuginfo libc6-dbg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47357952/
1> dbg:get_tracer(). {error,{no_tracer_on_node,nonode@nohost}} 2> dbg:tracer(). {ok,} 3> dbg:get_tra
来自 Using trace and dbg in Erlang ,我知道可以使用 跟踪所有函数对指定函数的调用 1>dbg:p(all, c). 但是,如何从所有函数跟踪调用所有函数呢?例如: 1>
在我们的系统测试中运行我们的 Erlang 应用程序时,有时我想打开并捕获调试跟踪。 Erlang 节点使用 relx 启动脚本(称为 _rel/bin/foo foreground)启动,所以我无法
我必须调试一些在参数中传递巨大二进制文件的代码。 为此,我想使用 dbg:tracer/0、dbg:p/2、dbg:tpl/3 的组合. 但是如果我这样做,每次都会输出所有二进制文件,这会弄乱输出,因
我用 dbg 跟踪了我的系统。我用过 dbg:trace_port(file,{"/tmp/trace",wrap,atom_to_list(node()),10000000,20}) 现在我有几个二
我正在开发 LLVM IR 的前端,并希望附加调试信息。我已经使 %llvm.dbg.declare 有效,它可以在此声明后跟踪我的变量。但我不明白另一个 %llvm.dbg.value 的用途,谁能
我想创建一个类似于标准的自定义宏 dbg! macro ,但可以选择通过 colored 使用颜色箱。 dbg!通常以以下格式打印一些东西 [path_to_file:line_number] "sy
如何将调试器附加到正在运行的 erlang 进程 (rabbitmq)?我有正在运行的同一个兔子版本的源代码。我想在源代码行上设置一个断点,并将调试器附加到正在运行的兔子实例。我不确定 erlang
我已经查看了与此错误相关的答案。但是,我的问题是,一旦我有了 libc 的 debuginfo,我应该将该库放置在什么位置,以便 valgrind 能够看到它? 我已经下载了 valgrind 并针对
我有一个 Win32 编译器,多年来,它一直能够创建 DBG debug information file . 这允许调试器和工具,如 进程浏览器 和 进程监视器访问符号信息: 我最近了解到 Visu
我原以为 dbg!(x) 和 println!("{:?}", x) 都会打印相同的字符串,因为 {:?} 用于调试输出,对吧? 如果我没记错的话,为什么我们会看到这样的结果,一个显示单行列表,一个显
我正在学习 angularjs 并遵循来自 - here 的教程 这是我的 index.jsp - Angular Example Search : - Sort by
我正在 Windows VM 上构建适用于 Android 的 Unity 项目,当我运行 Azure DevOps 管道时,收到以下错误消息: * What went wrong: Executio
我正在 Windows VM 上构建适用于 Android 的 Unity 项目,当我运行 Azure DevOps 管道时,收到以下错误消息: * What went wrong: Executio
我有一个 DLL 的 MAP 文件,我正在尝试调试它。我使用 Map2Dbg-tool 将其转换为 DBG 文件并将其放入符号路径中。 尽管发出.reload/f mydll.dll不起作用,但会发生
我可以通过 php_pcre_replace 上的中断来中断 preg_replace 等内置函数, 但是我自己的函数(function func(){...}),如何在其上设置断点? 最佳答案 如果
为什么 dbg! 在这个 for_each 循环中不起作用? Playground link fn main() { let chars = "hello".chars(); char
我使用的是安装在 pyenv 中的 python3.6.1。我在代码上运行 gdb 时遇到问题。当我运行gdb --args python mycode.py时,它以错误“/home/vydra/.p
我正在检查一个 c 程序并想安装 valgrind,然后系统告诉我我还应该安装带有调试符号 libc6-dbg 的 libc6。 现在我的问题是,以后用gcc编译时,会用到哪个版本的libc? 我如何
当我想在 ubuntu 上安装像 libxml2 这样的库时,我输入 sudo apt-get install libxml2 并输入 tab 键。 libxml2、libxml2-dev、libxm
我是一名优秀的程序员,十分优秀!