下面这段,初看一定会脑大,实际原因非常明确,所以遇到时要先观察,不一定是头大的
问题
。
gdb -p 1461
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warr ant y for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-suse- linux ".
Attaching to process 14614
Reading symbols from /home/zhangsan/bin/test...done.
Using host libthread_db library "/lib64/libthread_db.so.1".
Error while mapping shared library sections:
./libtest.so: No such file or directory.
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libz.so.1...done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /usr/lib64/libaio.so.1...done.
Loaded symbols for /usr/lib64/libaio.so.1
Symbol file not found for ./libtest.so
Reading symbols from /lib64/libc.so.6...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib64/libstdc++.so.6...done.
Loaded symbols for /usr/lib64/libstdc++.so.6
Reading symbols from /lib64/libm.so.6...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libgcc_s.so.1...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 47461298698832 (LWP 14614)]
[New Thread 1082132800 (LWP 14618)]
Symbol file not found for ./libapr-1.so.0
Reading symbols from /lib64/libcrypt.so.1...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /lib64/libnss_files.so.2...done.
Loaded symbols for /lib64/libnss_files.so.2
0x00002b2a709a9ec1 in free () from /lib64/libc.so.6
(gdb) t 2
[Switching to thread 2 (Thread 1082132800 (LWP 14618))]#0 0x00002b2a709cf476 in poll () from /lib64/libc.so.6
(gdb) bt
#0 0x00002b2a709cf476 in poll () from /lib64/libc.so.6
#1 0x00002b2a70d6cf05 in ?? ()
#2 0x000000000053ab48 in ?? ()
#3 0x0000000040800100 in ?? ()
#4 0x0000000040800120 in ?? ()
#5 0x00002b2a7081553e in ?? ()
#6 0x0000271040800110 in ?? ()
#7 0x0000000b00000009 in ?? ()
#8 0x000000090000000b in ?? ()
#9 0x000000004c7f5412 in ?? ()
#10 0x000000000053ab48 in ?? ()
#11 0x0000000000000000 in ?? ()
gdb -p 1461
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warr ant y for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-suse- linux ".
Attaching to process 14614
Reading symbols from /home/zhangsan/bin/test...done.
Using host libthread_db library "/lib64/libthread_db.so.1".
Error while mapping shared library sections:
./libtest.so: No such file or directory.
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libz.so.1...done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /usr/lib64/libaio.so.1...done.
Loaded symbols for /usr/lib64/libaio.so.1
Symbol file not found for ./libtest.so
Reading symbols from /lib64/libc.so.6...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib64/libstdc++.so.6...done.
Loaded symbols for /usr/lib64/libstdc++.so.6
Reading symbols from /lib64/libm.so.6...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libgcc_s.so.1...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 47461298698832 (LWP 14614)]
[New Thread 1082132800 (LWP 14618)]
Symbol file not found for ./libapr-1.so.0
Reading symbols from /lib64/libcrypt.so.1...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /lib64/libnss_files.so.2...done.
Loaded symbols for /lib64/libnss_files.so.2
0x00002b2a709a9ec1 in free () from /lib64/libc.so.6
(gdb) t 2
[Switching to thread 2 (Thread 1082132800 (LWP 14618))]#0 0x00002b2a709cf476 in poll () from /lib64/libc.so.6
(gdb) bt
#0 0x00002b2a709cf476 in poll () from /lib64/libc.so.6
#1 0x00002b2a70d6cf05 in ?? ()
#2 0x000000000053ab48 in ?? ()
#3 0x0000000040800100 in ?? ()
#4 0x0000000040800120 in ?? ()
#5 0x00002b2a7081553e in ?? ()
#6 0x0000271040800110 in ?? ()
#7 0x0000000b00000009 in ?? ()
#8 0x000000090000000b in ?? ()
#9 0x000000004c7f5412 in ?? ()
#10 0x000000000053ab48 in ?? ()
#11 0x0000000000000000 in ?? ()
仔细看后,原因再清楚不过了,LD_LIBRARY_PATH没有设置好,可能是因为运行程序和gdb的环境不一样,可以手工设置下LD_LIBRARY_PATH,再gdb就OK了。
本文转自eyjian 51CTO博客,原文链接:http://blog.51cto.com/mooon/909754,如需转载请自行联系原作者