首页
社区
课程
招聘
C++做的Win32程序突然退出
发表于: 2006-6-12 09:28 5405

C++做的Win32程序突然退出

2006-6-12 09:28
5405
我用VC++做了一个批量文件转换工具,现在发现有时这个程序突然间就消失了,就是说没有非法访问的提示,也没有异常的提示.任何信息没有.
就是突然不见了!想突然从内存卸载一样!

请问是什么问题会造成这样的效果?
多谢!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看看系统日志先,多半是程序crash拉。。。
2006-6-12 15:19
0
雪    币: 222
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
发布版的程序,用光了数据栈就会被系统关闭,而且不显示任何信息
2006-6-12 16:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
请问楼上, 你指的数据栈是否就是函数调用的堆栈?
我的编译选项是这样的:
/STACK: 0
This option specifies the total stack allocation in virtual memory. The default stack size is 1 MB.

你的意思是如果我把这个"stack size"变大些是否就可能避免这个问题?
2006-6-13 11:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
另外,我做了一个MFC的程序调这个函数:
void CauseStackOverflow (int i)
{
        // Overflow the stack by allocating a large stack-based array
        // in a recursive function.
        int a[10000*1000];
                memset(a,NULL,sizeof(a));
        printf("%d ", i);
        CauseStackOverflow (i + 1);
}
但release版程序耗尽CPU,但没有被终结,是为什么呢?
2006-6-13 14:06
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
XP SP2 有个溢出保护机制 好像就是这个效果 什么提示都没有直接被杀掉
2006-6-13 15:03
0
游客
登录 | 注册 方可回帖
返回
//