找不到Segmentation fault错误原因,请大家给点意见!

meet_star 2008-12-10 05:19:24
-bash-2.05b$ gdb -c core.14181 mm_agent
GNU gdb Red Hat Linux (6.3.0.0-0.30.1rh)
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 library "/lib/tls/libthread_db.so.1".

Core was generated by `./mm_agent'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so.10.1...done.
Loaded symbols for /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so.10.1
Reading symbols from /lib/tls/libpthread.so.0...done.
Loaded symbols for /lib/tls/libpthread.so.0
Reading symbols from /usr/lib/libncurses.so.5...done.
Loaded symbols for /usr/lib/libncurses.so.5
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 /usr/lib/libstdc++.so.5...done.
Loaded symbols for /usr/lib/libstdc++.so.5
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libnnz10.so...done.
Loaded symbols for /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libnnz10.so
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/libgpm.so.1...done.
Loaded symbols for /usr/lib/libgpm.so.1
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
#0 0x001c2009 in free () from /lib/tls/libc.so.6
(gdb) bt
#0 0x001c2009 in free () from /lib/tls/libc.so.6
#1 0x001bdc0b in _IO_free_backup_area_internal () from /lib/tls/libc.so.6
#2 0x001bc170 in _IO_new_file_overflow () from /lib/tls/libc.so.6
#3 0x001bcc00 in _IO_new_file_xsputn () from /lib/tls/libc.so.6
#4 0x00197397 in vfprintf () from /lib/tls/libc.so.6

#5 0x0019ddef in fprintf () from /lib/tls/libc.so.6

#6 0x08072faf in cLogfile::Log2file (this=0x99b1c60, pBuffer=0x37dcdf0 "[ DB ][<-][....-....] System Info: Get data form DB Msisdn[1234], SubType[3], Status[0]",
pBufferPrefix=0x37d92b0 "081207 012236.305 ", pBufferPostfix=0x0, BufferLen=0) at cLogfile.cc:367//此行是调用log库,它是常用库,应该没问题,再以上的提示就和代码没什么关系
#7 0x08074768 in cLogCycle::Log2file (this=0x99b1c60, pBuffer=0x37dcdf0 "[ DB ][<-][....-....] System Info: Get data form DB Msisdn[1234], SubType[3], Status[0]",
pPrefixBuffer=0x37d92b0 "081207 012236.305 ", pPostfixBuffer=0x0, Len=0) at cLogCycle.cc:567 //此行是调用log库,它是常用库,应该没问题

#8 0x0806aebe in cLogDateCycle::Log2file (this=0x99b1c60, Buffer=0x37dcdf0 "[ DB ][<-][....-....] System Info: Get data form DB Msisdn[1234], SubType[3], Status[0]", Len=0) //此行是将Buffer的内容写入log文件
at cLogDateCycle.cc:821

#9 0x08053de6 in WriteLog::OutputLog (this=0x99b10b8, pModuleName=0x808c1b4 " DB ", pRefId=0x808c1af "....", pTokenId=0x808c1af "....", pDirection=2,
szFormat=0x808c468 "System Info: Get data form DB MSISDN[%s], SubType[%d], Status[%d]") at WriteLog.cpp:66 //此行是将这几个参数组合成Buffer字符,从Core里面看,这几个参数都是正确的,都有值,内存地址也正确


#10 0x0804bba7 in DBHandle::GetAPartyStatus (this=0x99b3088, szANum=0x37e24dc "1234", iSubType=0x37e23a4, iStatus=0x37e23a0) at DBHandle.cpp:162

//szANum=0x37e24dc "1234", iSubType=0x37e23a4, iStatus=0x37e23a0 这三个参数都有值

#11 0x0804cf63 in check_queue_thread (arg=0x0) at mm_agent.cpp:472
#12 0x004dcde8 in start_thread () from /lib/tls/libpthread.so.0

各位大侠给点意见,看看是什么问题,感觉从这core里面看不出什么问题?
#13 0x0022d93a in clone () from /lib/tls/libc.so.6
...全文
1948 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
meet_star 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 romandion 的回复:]
0x08072faf in cLogfile::Log2file (this=0x99b1c60, pBuffer=0x37dcdf0 "[ DB ][ <-][....-....] System Info: Get data form DB Msisdn[1234], SubType[3], Status[0]",
pBufferPrefix=0x37d92b0 "081207 012236.305 ", pBufferPostfix=0x0, BufferLen=0) at cLogfile.cc:367//此行是调用log库,它是常用库,应该没问题,再以上的提示就和代码没什么关系

楼主最好把Log2file的贴出来看下吧。

如果CLOGFILE是常…
[/Quote]

日志文件没超过2G,它是可配置大小,配置的是10M,还有磁盘也有空间,现在还不知是什么原因,先结了再说。
romandion 2008-12-15
  • 打赏
  • 举报
回复
0x08072faf in cLogfile::Log2file (this=0x99b1c60, pBuffer=0x37dcdf0 "[ DB ][ <-][....-....] System Info: Get data form DB Msisdn[1234], SubType[3], Status[0]",
pBufferPrefix=0x37d92b0 "081207 012236.305 ", pBufferPostfix=0x0, BufferLen=0) at cLogfile.cc:367//此行是调用log库,它是常用库,应该没问题,再以上的提示就和代码没什么关系

楼主最好把Log2file的贴出来看下吧。

如果CLOGFILE是常用库的话,我感觉倒不一定是pBufferPostfix=0x0, BufferLen=0的问题。因为这两个参数应该是默认参数,如下

#8 0x0806aebe in cLogDateCycle::Log2file (this=0x99b1c60, Buffer=0x37dcdf0 "[ DB ][ <-][....-....] System Info: Get data form DB Msisdn[1234], SubType[3], Status[0]", Len=0) //此行是将Buffer的内容写入log文件at cLogDateCycle.cc:821

那么极有可能是是日志文件大小超过2G了,或者磁盘空间不足。检查下看看。
meet_star 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ztz0223 的回复:]
C/C++ codepBufferPostfix=0x0, BufferLen=0)



你写了没有分配空间的地址,能不core掉?
segment fault一般就是因为出现了写内存出错的缘故
你看看哪里是不是没有分配空间啊
[/Quote]

是啊,可能是这个问题。
可这些都是库里的东西,外面也没用到此参数。
就呆在云上 2008-12-12
  • 打赏
  • 举报
回复
pBufferPostfix=0x0, BufferLen=0)


你写了没有分配空间的地址,能不core掉?
segment fault一般就是因为出现了写内存出错的缘故
你看看哪里是不是没有分配空间啊
erwin1984 2008-12-12
  • 打赏
  • 举报
回复
把 cLogfile::Log2file 的代码贴出来看看?
meet_star 2008-12-12
  • 打赏
  • 举报
回复
这些内容是core文件里的,程序死了就产生了这个core文件,帮解决问题的
alexhilton 2008-12-10
  • 打赏
  • 举报
回复
能问一下楼主吗, “你在做什么啊?”怎么那么多, 一大堆没看明白!
meet_star 2008-12-10
  • 打赏
  • 举报
回复
是有多线程,但这个函数只有一个线程去调用,所以有点郁闷。
这问题不是每次都有,现在程序跑了好几天都没有,测试数据都是一样。
lala_benben 2008-12-10
  • 打赏
  • 举报
回复
应该是多线程的问题。。你看是正确的。。但是其他线程或许以及功能改变了这个值
meet_star 2008-12-10
  • 打赏
  • 举报
回复
up
nullah 2008-12-10
  • 打赏
  • 举报
回复
汗.....
比一楼还晕
meet_star 2008-12-10
  • 打赏
  • 举报
回复
自己顶下,,,,
qqwx_1986 2008-12-10
  • 打赏
  • 举报
回复
晕乎乎的顶一下.....

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧