免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1939 | 回复: 3
打印 上一主题 下一主题

[C++] 求解 奇怪的堆栈 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-10 17:24 |只看该作者 |倒序浏览
进程生成core,gdb打开后,知道是指针异常,但堆栈信息看不懂,找不到具体的原因。各大侠帮帮忙。截图如下:
一个堆栈图,一个线程图


论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2013-07-10 19:51 |只看该作者
info locals看有什么异常。

论坛徽章:
6
技术图书徽章
日期:2013-11-13 11:11:27子鼠
日期:2014-02-20 17:54:13处女座
日期:2014-06-16 17:43:33午马
日期:2014-08-08 09:11:17未羊
日期:2014-08-10 11:57:072015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2013-07-11 09:11 |只看该作者
看着像死循环。

论坛徽章:
0
4 [报告]
发表于 2013-07-12 14:45 |只看该作者
info locals截图如下:
(gdb) bt
#0  0x00000000005e2204 in _sess_process_packet (sessp=0x2aaaac02c240, sp=0x2aaaac02d380, isp=0x2aaaac02d310, transport=<value optimized out>,
    opaque=<value optimized out>, olength=<value optimized out>, packetptr=0x2aaaacae5b00 "00\002\001\001\004\nthbczh2005\242\037\002\004l\260\215\232\002\001",
    length=50) at snmp_api.c:5498
#1  0x00000000005e3b95 in _sess_read (sessp=0x2aaaac02c240, fdset=<value optimized out> at snmp_api.c:6043
#2  0x00000000005e4359 in snmp_sess_read2 (sessp=0x1, fdset=0x0) at snmp_api.c:6075
#3  0x00000000005e43af in snmp_sess_read (sessp=0x2aaaac02c240, fdset=0x43c2a210) at snmp_api.c:6063
#4  0x0000000000577a65 in CSnmpWrapper::recv_async_response (this=0x2aaaac02d0a0) at ../../source/snmpmanager/CSnmpWrapper.cpp:851
#5  0x0000000000506d67 in CMonDevice::process_snmp_result_new (this=0x2aaab196859 at ../../source/snmpmanager/CAsyncGetDevices.cpp:343
#6  0x0000000000508126 in CAsyncGetDevices::run (this=0x17abd580, nNow=1370069141) at ../../source/snmpmanager/CAsyncGetDevices.cpp:1002
#7  0x000000000050cd9b in CAyncGetThread::Run (this=0x17abd560) at ../../source/snmpmanager/CAsyncGetThread.cpp:41
#8  0x00000000004431c5 in CThread::_ThreadEntry (pParam=0x17abd560) at ../../source/event/Thread.cpp:27
#9  0x0000003e52e0673d in start_thread () from /lib64/libpthread.so.0
#10 0x0000003e526d3d1d in clone () from /lib64/libc.so.6
(gdb) info locals
callback = <value optimized out>
magic = <value optimized out>
pdu = 0x2aaaac10e430
rp = 0x1
orp = 0x18ee9720
sptr = <value optimized out>
ret = <value optimized out>
handled = 1
__func__ = "_sess_process_packet"


循环检查过,死锁之类的都不存在。产生的core文件,也检查不到是死循环,应该可以排除这点。
我疑惑的是堆栈中的第2,3,4帧的参数sessp,变化后,怎么又变回来了,但到第1帧时又变掉了,结果访问这个指针的内容时,就发生异常退出了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP