在Linux上的gdb中加载核心文件时,如何在目录前添加库路径

How do I prepend a directory the library path when loading a core file in gdb on Linux我有一个无法直接访问的在远程系统上生成的核心文件。 我也有远程系统中库文件的本地副本,以及崩溃程序的可执行文件。 我想在gdb中分析此核心转储。 例如:
我的库在当前目录中。 在过去,我看到调试器通过提供选项" -p"来实现此目的。 或" -p / ="。 所以我的问题是: 分析gdb中的corefile时,如何指定首先从相对于当前目录的路径加载库? 在不指定可执行文件或核心文件的情况下启动gdb,然后键入以下命令:
您将需要确保完全从目标系统镜像您的库路径。上面的内容是用于调试与主机不匹配的目标的,这就是为什么复制包含库的根文件系统结构很重要的原因。 如果要远程调试与主机相同的体系结构和Linux / glibc版本的服务器,则可以按照fd的建议进行操作:
如果要覆盖某些库,但不是全部,则可以将目标库目录结构复制到一个临时位置,然后使用上述的 我不确定这在gdb中是否可以实现,但是我不是专家。 但是我可以评论Linux动态链接器。以下应打印所有已解析共享库和未解析共享库的路径。
我们需要知道您的共享库如何与可执行文件链接。为此,请使用以下命令:
有关更多信息,您可以从以下内容开始:
我在developer.apple.com上找到了此摘录
编辑: 我不认为使用上面的设置来添加我添加的目录,但似乎确实要添加它们,因此,我当前系统中缺少的文件会在我添加的路径中获取。我猜将solib-absolute-prefix设置为伪造的,并按我需要的顺序在solib-search-path中添加目录可能是一个完整的解决方案。 您也可以在调用gdb时将LD_PRELOAD设置为每个库,或者将LD_LIBRARY_PATH设置为当前目录。如果gdb本身尝试使用您正在预加载的任何库,这只会导致问题。 重要说明:
如果您正在执行交叉编译并尝试使用gdb进行调试,则
然后检查目标系统是否具有libthread_db。我在网上发现了很多类似的问题。仅使用" set solib-"无法解决该问题,还必须使用交叉编译器来构建libthread_db。 |
相关内容
华硕电脑系统win10|华硕电脑系统win10系统
华硕电脑系统win10|华硕电脑系统win10系统,,华硕电脑系统win10...
金蝶担保机构业务管理系统
金蝶担保机构业务管理系统,,1.金蝶财务软件怎么使用?软件使用...
联想台式机怎么恢复出厂系统
联想台式机怎么恢复出厂系统,所示,如下图,如所示:首先关闭计算...
在wps中粘贴保留原格式化|wps中复制文件保留原
在wps中粘贴保留原格式化|wps中复制文件保留原有格式,格式化,...
什么是boot.ini文件错误ini的非法解决方案
什么是boot.ini文件错误ini的非法解决方案,,千奇百怪的电脑问...
鼠标不能拖动文件了
鼠标不能拖动文件了,鼠标,拖动,本文目录鼠标不能拖动文件了电...
电脑系统城|电脑系统下载 win7
电脑系统城|电脑系统下载 win7,电脑系统城,不少朋友在使用电脑...
主角电脑系统的小说|主角大脑里面电脑系统的小
主角电脑系统的小说|主角大脑里面电脑系统的小说,,1. 主角大脑...
电脑系统文字怎么修改|电脑系统文字怎么修改颜
电脑系统文字怎么修改|电脑系统文字怎么修改颜色,,1. 电脑系统...
英特尔的核心i34130处理器的基本情况及评价
英特尔的核心i34130处理器的基本情况及评价,,Haswell虽然推出...
金蝶系统的其他出入库核算|金蝶精斗云的云进销
金蝶系统的其他出入库核算|金蝶精斗云的云进销存软件有其他...
苹果系统的电脑好用吗|苹果电脑系统好用不
苹果系统的电脑好用吗|苹果电脑系统好用不,,苹果电脑系统好用...
四PK四线程核心英特尔核心与AMD速龙
四PK四线程核心英特尔核心与AMD速龙,,英特尔32纳米Clarkdale处...
怎样升级电脑cpu|怎样升级电脑系统版本
怎样升级电脑cpu|怎样升级电脑系统版本,,怎样升级电脑系统版本...
装电脑系统要多少钱|装个电脑系统要多少钱
装电脑系统要多少钱|装个电脑系统要多少钱,,装个电脑系统要多...