gdb如何调试动态链接库的问题。比如我想调试的代码为动态链接库代码,我设置断点后却得到以下错误
(gdb) b mps_guide_db.c:1699
No source file named mps_guide_db.c.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
可以通过 以下方式得到解决:
(gdb) set breakpoint pending on
(gdb) b db_subscr_no_lookup
Function "db_subscr_no_lookup" not defined.
Breakpoint 1 (db_subscr_no_lookup) pending.
(gdb) r mcap06 2
Starting program: /usr1/arbor/bin/MCAP mcap06 2
[Thread debugging using libthread_db enabled]
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py", line 19, in <module>
import os
ImportError: No module named os
[New Thread 0x7ffff1165700 (LWP 7449)]
Breakpoint 1, db_subscr_no_lookup (cat_connection=0x699520, cdr=0x623300, external_id=0x7fffffff9944 "yy_tc01", db_active_dt=0x7fffffff98b0, db_inactive_dt=0x7fffffff98a0, target_origin_flag=0, network_delay=0) at guide/mps_guide_db.c:1711
1711 if ( giUseHierarchyRt )
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6.x86_64 libaio-0.3.107-10.el6.x86_64 libgcc-4.4.6-4.el6.x86_64 libstdc++-4.4.6-4.el6.x86_64 numactl-2.0.7-3.el6.x86_64
(gdb) list
1706 static char *mps_subscr_no_lookup_inline = "SELECT \
1707 server_id, account_no, subscr_no, subscr_no_resets, active_date, inactive_date \
1708 FROM EXTERNAL_ID_EQUIP_MAP \
1709 WHERE external_id = :v1 AND external_id_type = :v2 ORDER by active_date";
1710
1711 if ( giUseHierarchyRt )
1712 {
1713 switch( target_origin_flag )
1714 {
1715 case SL_ORIGIN:
(gdb) help set breakpoint pending
(gdb) b mps_guide_db.c:1699
No source file named mps_guide_db.c.
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
可以通过 以下方式得到解决:
(gdb) set breakpoint pending on
(gdb) b db_subscr_no_lookup
Function "db_subscr_no_lookup" not defined.
Breakpoint 1 (db_subscr_no_lookup) pending.
(gdb) r mcap06 2
Starting program: /usr1/arbor/bin/MCAP mcap06 2
[Thread debugging using libthread_db enabled]
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py", line 19, in <module>
import os
ImportError: No module named os
[New Thread 0x7ffff1165700 (LWP 7449)]
Breakpoint 1, db_subscr_no_lookup (cat_connection=0x699520, cdr=0x623300, external_id=0x7fffffff9944 "yy_tc01", db_active_dt=0x7fffffff98b0, db_inactive_dt=0x7fffffff98a0, target_origin_flag=0, network_delay=0) at guide/mps_guide_db.c:1711
1711 if ( giUseHierarchyRt )
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6.x86_64 libaio-0.3.107-10.el6.x86_64 libgcc-4.4.6-4.el6.x86_64 libstdc++-4.4.6-4.el6.x86_64 numactl-2.0.7-3.el6.x86_64
(gdb) list
1706 static char *mps_subscr_no_lookup_inline = "SELECT \
1707 server_id, account_no, subscr_no, subscr_no_resets, active_date, inactive_date \
1708 FROM EXTERNAL_ID_EQUIP_MAP \
1709 WHERE external_id = :v1 AND external_id_type = :v2 ORDER by active_date";
1710
1711 if ( giUseHierarchyRt )
1712 {
1713 switch( target_origin_flag )
1714 {
1715 case SL_ORIGIN:
(gdb) help set breakpoint pending