如何使用命令标志在未来的共享库上设置断点
- 2024-11-05 08:37:00
- admin 原创
- 30
问题描述:
我正在尝试使用该标志来自动化 gdb 会话--command
。我正在尝试在共享库(DLL 的 Unix 等效项)中的函数上设置断点。我的 cmds.gdb 如下所示:
set args /home/shlomi/conf/bugs/kde/font-break.txt
b IA__FcFontMatch
r
但是,我得到了以下信息:
shlomi:~/progs/bugs-external/kde/font-breaking$ gdb --command=cmds.gdb...
GNU gdb 6.8-2mdv2009.0(Mandriva Linux 版本 2009.0)
版权所有 (C) 2008 自由软件基金会,Inc.
许可证 GPLv3+:GNU GPL 版本 3 或更高版本
这是免费软件:您可以自由更改和重新分发它。
在法律允许的范围内,不提供任何保证。输入“显示复制”
并“显示保修”了解详情。
此 GDB 配置为“i586-mandriva-linux-gnu”...
(未找到调试符号)
函数“IA__FcFontMatch”未定义。
在将来的共享库加载时使断点挂起?(y 或 [n])[回答 N;输入不是来自终端]
所以它最终并没有设置断点。我怎样才能让它默认回答“y”以在待定的未来共享库加载时设置断点?
我记得我能做某事,但却记不起做了什么。
解决方案 1:
回复我自己,我想给出某人在 IRC 上给我的答案:
(gdb)有关待定
操作——指定在跟踪点要采取的操作
设置断点——断点具体设置
设置挂起断点——设置调试器关于挂起断点的行为
显示断点——断点特定设置
show breakpoint hanging——显示调试器关于挂起断点的行为
因此设置断点挂起就可以解决问题;它的用法cmds.gdb
如下
set breakpoint pending on
break <source file name>:<line number>
解决方案 2:
OT:在终端中,用一行代码就可以调试 Caja:
gdb -ex "set breakpoint pending on" -ex "break gdk_x_error" -ex run --args caja --sync
解决方案 3:
沒有符號。
objdump -t /lib/libacl.so
SYMBOL TABLE:
no symbols
objdump -T /lib/libacl.so
...
00002bd0 g DF .text 000000d0 ACL_1.0 acl_delete_entry
...
(gdb) break 0x0002bd0
(gdb) x/20i acl_delete_entry
0x2bd0 <acl_delete_entry>: stwu r1,-32(r1)
0x2bd4 <acl_delete_entry+4>: mflr r0
0x2bd8 <acl_delete_entry+8>: stw r29,20(r1)
0x2bdc <acl_delete_entry+12>: stw r30,24(r1)
0x2be0 <acl_delete_entry+16>: mr r29,r4
0x2be4 <acl_delete_entry+20>: li r4,28972
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD