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

我试图使用--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.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-mandriva-linux-gnu"...
(no debugging symbols found)
Function "IA__FcFontMatch" not defined.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]

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

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


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

(gdb) apropos pending
actions -- Specify the actions to be taken at a tracepoint
set breakpoint -- Breakpoint specific settings
set breakpoint pending -- Set debugger's behavior regarding pending breakpoints
show breakpoint -- Breakpoint specific settings
show breakpoint pending -- Show debugger's behavior regarding pending breakpoints

因此设置断点等待窍门。 它用于像例如cmds.gdb

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

OT:在终端,它看起来像这样在一行中调试Caja:

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
链接地址: http://www.djcxy.com/p/49697.html

上一篇: How to set breakpoints on future shared libraries with a command flag

下一篇: Code First to Database First to Code First