コマンド フラグを使用して将来の共有ライブラリにブレークポイントを設定する方法

StackOverflow https://stackoverflow.com/questions/100444

  •  01-07-2019
  •  | 
  •  

質問

を使用して gdb セッションを自動化しようとしています --command フラグ。共有ライブラリ (Unix の DLL に相当) 内の関数にブレークポイントを設定しようとしています。私の 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 を 1 行でデバッグするには次のようになります。

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top