免费注册 查看新帖 |

Chinaunix

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

谁能帮我看看错误吗 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-21 20:36 |只看该作者 |倒序浏览
Program received signal SIGSEGV, Segmentation fault.
0x081c6446 in DestHashClassifier::hashkey (this=0xa2f7330, dst=4)at classifier/classifier-hash.h:180
180                        long key = mshift(dst);
(gdb) i locals
key = Cannot access memory at address 0xbf43affc
(gdb) l
175                virtual int command(int argc, const char*const* argv);
176                int classify(Packet *p);
177                virtual void do_install(char *dst, NsObject *target);
178        protected:
179                const char* hashkey(nsaddr_t, nsaddr_t dst, int) {
180                        long key = mshift(dst);
181                        return (const char*) key;
182                }
183        };
184       
(gdb) p key
Cannot access memory at address 0xbf43affc
(gdb) p dst
$1 = 4
(gdb) p key
Cannot access memory at address 0xbf43affc
(gdb) p shift_
$2 = 0
(gdb) p  mask_
$3 = 214748364
(gdb) p &key
$4 = (long int *) 0xbf43affc
(gdb)


其中inline int mshift(int val) { return ((val >> shift_) & mask_); }

为什么不能访问局部变量呢? 谢谢大侠们帮忙!

论坛徽章:
0
2 [报告]
发表于 2011-03-22 09:25 |只看该作者
自己顶一下 等待高手的解答

论坛徽章:
0
3 [报告]
发表于 2011-03-22 10:54 |只看该作者
问题已经解决,是程序中出现了死循环。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP