- 论坛徽章:
- 0
|
环境说明:
linux AS 3
$ uname -r
2.6.9-1.667
程序运行时报*** glibc detected *** free(): invalid pointer: 0x0912d1d0 ***
gdb跟踪信息:
$ gdb $HOME/bin/mydulv1 core.30872
malloc: using debugging hooks
GNU gdb Red Hat Linux (6.1post-1.20040607.41rh)
Copyright 2004 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 warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db lib
rary "/lib/tls/libthread_db.so.1".
Core was generated by `mydulv1 -s system01.dbf -d demo01.dbf demo02.dbf'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /etc/libcwait.so...done.
Loaded symbols for /etc/libcwait.so
Reading symbols from /lib/tls/libm.so.6...done.
Loaded symbols for /lib/tls/libm.so.6
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /oracle/product/10.1.0/db_1/lib/libclntsh.so.10.1...done.
Loaded symbols for /oracle/product/10.1.0/db_1/lib/libclntsh.so.10.1
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /oracle/product/10.1.0/db_1/lib/libnnz10.so...done.
Loaded symbols for /oracle/product/10.1.0/db_1/lib/libnnz10.so
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/tls/libpthread.so.0...done.
Loaded symbols for /lib/tls/libpthread.so.0
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
#0 0x00aef843 in _int_realloc () from /lib/tls/libc.so.6
(gdb) where
#0 0x00aef843 in _int_realloc () from /lib/tls/libc.so.6
#1 0x00af218b in realloc_check () from /lib/tls/libc.so.6
#2 0x00af3b8c in tr_reallochook () from /lib/tls/libc.so.6
#3 0x00af064c in realloc () from /lib/tls/libc.so.6
#4 0x08051064 in dulora2c (S_colinfo=0x925a24c, S_coldata=0xfeff1bdc)
at dulcom.c:1779
#5 0x0804cbf2 in duldealrowdata (S_rowdata=0xfeff1b90, S_dict=0x925a020,
tabnum=0, output=0x0, S_useropt=0xfeff48a0) at duldata.c:1531
#6 0x0804ae97 in dulblkdata (fp=0x9253008, blockid=21474,
S_useropt=0xfeff48a0, S_dict=0x925a020, output=0x0) at duldata.c:860
#7 0x0804a812 in dulextdata (S_extlst=0xfeff2640, S_useropt=0xfeff48a0,
S_dict=0x925a020, output=0x0) at duldata.c:669
#8 0x0804a6ba in dulsegment (fp=0x9253008, blockid=481, S_useropt=0xfeff48a0,
S_dict_user=0x0, output=0x0) at duldata.c:606
#9 0x08049ffc in duldictobj (S_useropt=0xfeff48a0) at duldata.c:421
#10 0x080493a1 in duldata (S_useropt=0xfeff48a0) at duldata.c:69
#11 0x08049108 in main (argc=6, argv=0xfeffb014) at mydul.c:101
由于程序比较复杂,在这里也说不清楚,我用mtrace跟踪,然后查看跟踪文件,malloc和free地址都是相对应的,真是搞不懂是什么问题了,有没有人碰到同样的问题,是不是linux as 3的bug |
|