当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]小程序出现Segmentation fault。。。找不到原因
帖子发表于 : 2009-01-22 18:46 
头像

注册: 2007-04-11 10:39
帖子: 319
送出感谢: 0 次
接收感谢: 0 次
代码:
//get content length
22 int getContentLength(char *buf)
23 {
24 char str1[] = "Content-Length:", str2[] = "\r\n";
25 char *ptr1, *value, *ptr2;
26 int ret = 0;
27 ptr1 = strstr (buf, str1) + 16;
28 ptr2 = strstr (ptr1, str2);
29 int temp1 = strlen (ptr1);
30 int temp2 = strlen (ptr2);
31 strncpy (value, ptr1, temp1 - temp2);
32 ret = atoi (value);
33 return ret;
34 }

出问题的就是以上这段。。。输入的buf是服务器返回的http信息。。
函数的作用是取得Content-length长度。

用gdb调试:
main (argc=Cannot access memory at address 0x7fff3834371f
) at post.c:241
241 return 0;

设置了断点之后,发现
(gdb) b 30
(gdb) bt
Breakpoint 1 at 0x400d16: file post.c, line 30.
#1 0x00000000004013ce in receiveResponse () at post.c:162
#2 0x0000000000401604 in main (argc=11, argv=0x7ffff4fd9258) at post.c:239
(gdb) s
31 strncpy (value, ptr1, temp1 - temp2);
(gdb) bt
#1 0x00000000004013ce in receiveResponse () at post.c:162
#2 0x0000000000401604 in main (argc=11, argv=0x7ffff4fd9258) at post.c:239
(gdb) s
32 ret = atoi (value);
(gdb) bt
#2 0x0000000000401604 in main (argc=Cannot access memory at address 0x7fff3834371f

就出现了以上的问题,造成了Segmentation fault。。。
整个程序已经正常运行了。。就是最后出现了这个。。。可是我没有操作国argc阿。。怎么出现错误呢?
完全找不到原因。。。水平太低了。。求助。。已经google一整天了。。。
先谢谢了 :em20 :em20 :em20 :em20


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [求助]小程序出现Segmentation fault。。。找不到原因
帖子发表于 : 2009-01-22 18:48 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
value 没分配


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [求助]小程序出现Segmentation fault。。。找不到原因
帖子发表于 : 2009-01-22 18:57 
头像

注册: 2007-04-11 10:39
帖子: 319
送出感谢: 0 次
接收感谢: 0 次
:em20 :em20
原来是这个。。。我晕了。。谢谢大蛇。。
一直被误导了。。。
我一直在找#2 0x0000000000401604 in main (argc=Cannot access memory at address 0x7fff3834371f
关于这个的错误。。。
:em20 :em20 :em20
再次感谢~~!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译