2008年11月24日
2008年11月14日
ProxyCache的server的崩溃问题解决了
Proxy Cache 是我现在正在做的项目,今天终于把server崩溃的问题解决了。
这个问题应该是在写server代码的时候遗留下来的,由于当时客户端没有写完,这个问题一直没有表现出来,也就放在那里忘记了。客户端写好后开始联调,运行没多久,几个server进程就一个一个的崩溃了,错误是 malloc(): memory corruption (fast): ,提示是内存操作错误,我仔细的检查了我程序的所有内存操作,没有发现什么错误。请钟老师帮忙看一下这个错误,他用反汇编帮我把这个错误定位到了函数,但是这个函数没什么错误,一定是其他地方有问题,在这个地方引起了程序的崩溃。
我用GDB一步一步的调试也没跟踪出什么问题来,只好请教我们组的大牛柱子同学,帮忙看看我的代码。经过一阵讨论,柱子同学指出,server的接受和发送函数的错误处理很可能有问题,要好好琢磨一下。于是今天一天我看了几本关于Linux网络编程的书,仔细的研究了一下send()和recv()两个系统调用的错误处理。再看看我的代码,错误处理的逻辑非常混乱,几乎全是错的(我有点奇怪server怎么还能运行那么长时间才崩溃)。整理思路,把错误处理部分重新写了一遍,再运行,等我吃完饭回来,server依然健在,哈哈,搞定了!
感谢钟老师的debug,感谢柱子的review,让我把这个问题解决了。
这个问题应该是在写server代码的时候遗留下来的,由于当时客户端没有写完,这个问题一直没有表现出来,也就放在那里忘记了。客户端写好后开始联调,运行没多久,几个server进程就一个一个的崩溃了,错误是 malloc(): memory corruption (fast): ,提示是内存操作错误,我仔细的检查了我程序的所有内存操作,没有发现什么错误。请钟老师帮忙看一下这个错误,他用反汇编帮我把这个错误定位到了函数,但是这个函数没什么错误,一定是其他地方有问题,在这个地方引起了程序的崩溃。
我用GDB一步一步的调试也没跟踪出什么问题来,只好请教我们组的大牛柱子同学,帮忙看看我的代码。经过一阵讨论,柱子同学指出,server的接受和发送函数的错误处理很可能有问题,要好好琢磨一下。于是今天一天我看了几本关于Linux网络编程的书,仔细的研究了一下send()和recv()两个系统调用的错误处理。再看看我的代码,错误处理的逻辑非常混乱,几乎全是错的(我有点奇怪server怎么还能运行那么长时间才崩溃)。整理思路,把错误处理部分重新写了一遍,再运行,等我吃完饭回来,server依然健在,哈哈,搞定了!
感谢钟老师的debug,感谢柱子的review,让我把这个问题解决了。
2008年11月13日
博客搬入新家
之前一直在百度(http://hi.baidu.com/coblay)写博客,现在感觉百度提供的博客功能过于简单,不能满足我的需求,而且也不方便与其他的服务整合,决定还是用blooger.com。
我的百度博客:http://hi.baidu.com/coblay
我的百度博客:http://hi.baidu.com/coblay
订阅:
博文 (Atom)
