程序隔几天就会死掉的问题

zzwinds 2004-11-12 11:29:07
我有一个服务器程序,vc写的,从另一个程序中接收数据,做了处理,转发给另一个程序,数据处理那里是多线程的。

如果服务器重启以后,则可以连续运行4,5天,然后程序会死掉,然后基本每隔1,2天会死,没有任何提示。

这种问题一般应该往哪个方向找原因?
...全文
207 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwinds 2004-11-18
  • 打赏
  • 举报
回复
找到问题了,是内存引用错误引起的
谢谢各位
phoenixandlinda 2004-11-12
  • 打赏
  • 举报
回复
"也不应该是程序死掉吧,而是自动退出,没有提示就自动退出了"
通常是内存泄漏,堆栈溢出导致系统出错。
zzwinds 2004-11-12
  • 打赏
  • 举报
回复
也不应该是程序死掉吧,而是自动退出,没有提示就自动退出了
zzwinds 2004-11-12
  • 打赏
  • 举报
回复
内存和cpu使用都正常,死之前也没有任何异常现象
phoenixandlinda 2004-11-12
  • 打赏
  • 举报
回复
最好用日志跟踪所有文件、内存、事件及atom对象。
kingzai 2004-11-12
  • 打赏
  • 举报
回复
服务器程序开发最重要就是处理内存问题。
检查内存泄漏和异常,写日志文件。必要时写个监控程序将服务进行重启
sunhuiNO1 2004-11-12
  • 打赏
  • 举报
回复
程序是如何死掉的?
如果是界面没有刷新,那估计是有死锁。
如果CPU占用很高,那是死循环,
如果自动退出,可能是栈用光了,
如果是没有响应,可能是指针操作有问题等等,这个最难找问题。
lsgt 2004-11-12
  • 打赏
  • 举报
回复
看看内存
techmaster 2004-11-12
  • 打赏
  • 举报
回复
1、先确定不是由编码疏忽引起的程序的正常退出。(非常重要)
2、检查所有动态分配内存的地方是否正确回收、如果用到了COM还要检查类似BSTR这种内部分配资源的回收是否正确执行。
3、向程序的重要且易出错步骤中添加调试代码,可以检查各种重要变量、内存、处理器状态,试图跟踪这些步骤。
4、在vc中让程序在调试环境下运行,直到程序死去后,检查调试环境的信息。
5、注掉被你怀疑的易出错步骤,测试执行,如果没有错误了,再仔细查找被注掉的部分。
6、如果在使用上述办法之后还不能够找到错误,且老板又必须让你找到错误的话。可以考虑重新编写或离职。
sunhuiNO1 2004-11-12
  • 打赏
  • 举报
回复
编译器有设置的,不同版本的设置的地方不一样,你好好找找,同时看看帮助,
zzwinds 2004-11-12
  • 打赏
  • 举报
回复
sunhuiNO1(2B):怎样把编译器分配的栈调大一些?
iorikingdom 2004-11-12
  • 打赏
  • 举报
回复
我很怕这种情况出现~~~
就是修改代码都不知道从哪里修改~~~
只有祝楼主好运了
gdy119 2004-11-12
  • 打赏
  • 举报
回复
资源用尽,肯定有地方内存使用不当,
或者调用系统资源过多!
Caps77 2004-11-12
  • 打赏
  • 举报
回复
遇到这种问题我深表同情,修改了代码要3,4天以后才能进行一次测试!

你可以用任务管理器来查看内存的使用情况(设置一下查看列表就行)

实在找不到bug,用“代码屏蔽法”逐个排除那将是非常非常痛苦的问题了
oyljerry 2004-11-12
  • 打赏
  • 举报
回复
哦,没什么异常就退出了,主要还是检查一下内存的一些操作
qrlvls 2004-11-12
  • 打赏
  • 举报
回复
资源问题
zzwinds 2004-11-12
  • 打赏
  • 举报
回复
那应该是堆栈的问题了,谢谢各位的热心回答,我会再查查资料的
sunhuiNO1 2004-11-12
  • 打赏
  • 举报
回复
自动退出应该不是内存泄露,因为楼主说内存使用正常,估计是一些内核对象使用有问题或者
堆栈用光,开始可以把编译器分配的栈调大一些,再看看有没有改善,同时查查有没有同步问
题。

18,359

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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