如何使用命令标志在将来的共享库上设置断点

我正在尝试使用--command标志自动化gdb会话。 我试图设置一个共享库中的函数的断点(一个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 release 2009.0)
 Copyright(C)2008 Free Software Foundation,Inc.
许可证GPLv3 +:GNU GPL版本3或更高版本 
这是免费软件:您可以自由更改和重新分配它。
没有担保,在法律允许的范围内。 键入“显示复制”
和“显示保修”的细节。
这个GDB被configuration为“i586-mandriva-linux-gnu”...
 (没有finddebugging符号)
未定义函数“IA__FcFontMatch”。
在将来的共享库加载时使断点处于等待状态?  (y或[n])[回答N; 不是从terminalinput]

所以它毕竟不设置断点。 我怎样才能让它默认回答“y”设置断点未来的共享库负载?

我记得我能做些事情,但不记得是什么。

回复自己,我想给出IRC上有人给我的答案:

 (gdb)apropos等待
操作 - 指定要在跟踪点执行的操作
设置断点 - 断点特定设置
设置断点挂起 - 设置debugging器关于挂起断点的行为
显示断点 - 断点特定的设置
显示未决断点 - 显示有关未决断点的debugging器行为

所以设置断点等待伎俩; 它用于像例如cmds.gdb

 set breakpoint pending on break <source file name>:<line number> 

OT:在terminal,它看起来像这样debuggingCaja在一行:

 gdb -ex "set breakpoint pending on" -ex "break gdk_x_error" -ex run --args caja --sync 

没有符号。

 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 

例如,你需要打破主要,并运行到rest。 所以共享库将被加载。

解释为阿帕奇