stack hash-MFC生成release版本的exe程序,崩溃,故障模块是StackHash_31f3

问题描述

MFC生成release版本的exe程序,崩溃,故障模块是StackHash_31f3

MFC的基于单文档的程序,是release版本的;用程序调试(F5),不会出现问题;直接运行生成的exe程序(在本机上哈),出现问题,见下:
***(exe文件名)已经停止工作
windows可以联机检测该问题的解决方案。
问题签名:
问题事件名称: APPCRASH
应用程序名: test.exe
应用程序版本: 1.0.0.1
应用程序时间戳: 5604b29f
故障模块名称: StackHash_31f3
故障模块版本: 6.1.7601.18933
故障模块时间戳: 55a69e20
异常代码: c0000374
异常偏移: 000ced0b
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
也是醉了,第一次出现这种问题。系统是win7
都不知道该如何下手找问题!

解决方案

F5调试的时候有没有发现内存泄漏

解决方案二:

应该是有小范围的内存访问越界,在 Debug 版本下没有表现出来,但在 Release 版本就出现了,这很正常的。

解决方案三:

栈溢出,一般是数组越界,函数调用 约定错误,scanf ,printf 参数不匹配
以及其他 行为导致的越界

解决方案四:

直接用编译器中断调试,然后查看你的代码的callstack等。

解决方案五:

release模式下打开调试信息输出,运行下,看看蹦在了哪里

解决方案六:

你单步调试一下吧,看到底是什么问题导致的。

解决方案七:

统一回复一下哈,调用的dll中包含的预编译命令,没有在工程中包含,导致出现的错误!
前期错误没有体现出来,是因为预编译下的函数没有被用到!

解决方案八:

不过还得谢谢大家的帮忙哈!

时间: 2024-10-30 03:53:20

stack hash-MFC生成release版本的exe程序,崩溃,故障模块是StackHash_31f3的相关文章

如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数

1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的"名言",恐怕是程序员最怕见也最常见的东西了. 在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程序崩溃并不可怕,反而是测试的成功.作为开发的我们更需要关心的是程序中的哪个函数或哪一行导致了系统崩溃,这样才能有针对性的进行改正. 本文描述了自己总结的几种定位崩溃

mfc webbrowser-MFC多次调用Navigate引起程序崩溃

问题描述 MFC多次调用Navigate引起程序崩溃 在调用Navigate挂了,次数多了就出现,随便问一下这个函数如何释放资源 解决方案 webbrowser对于网页支持有限,网页太复杂就支持不够好, 解决方案二: 看不出来,也许是网页的问题,也许是你程序的问题,信息太少

vb.net 怎么判断生成的exe 是debug还是release版本的。

问题描述 vb.net用程序 怎么判断生成的exe是debug还是release版本的. 解决方案 解决方案二:该回复于2011-12-20 11:36:12被版主删除解决方案三:在.NET中以DebuggableAttribute来控制CLR如何处理模块代码规则,而属性IsJITTrackingEnabled来标识运行库在代码生成过程中是否跟踪调试信息的的标识,如果IsJITTrackingEnabled为True,表示运行库跟踪调试信息,可推断为DebugBuild模式:如果IsJITTra

mfc-在VS13下编写MFC程序,release版本(静态库)在自己电脑可以用,在其他电脑会崩溃。

问题描述 在VS13下编写MFC程序,release版本(静态库)在自己电脑可以用,在其他电脑会崩溃. 我在win8.1+VS13的编译环境下开发了一个mfc的程序,编译了一个静态库的release版本.在自己的电脑上程序跑得很正常.但是如果在其他电脑上跑,一旦使用tcp/ip发送数据,程序就会崩溃有哪个大神可以指导一下吗 解决方案 不同电脑环境不同没有可比性,你可以增加点日志输出来帮助分析.比如说其它电脑是否有防火墙或者杀毒软件会干扰你的程序,是否缺少运行库或者文件.等等. 解决方案二: 加些

visual studio 2010-VS2010的MFC程序编译Release版本出现如下问题,请问应该怎么解决呢?

问题描述 VS2010的MFC程序编译Release版本出现如下问题,请问应该怎么解决呢? 1>DlgTotalProtein.obj : error LNK2005: "protected: static struct CRuntimeClass * __stdcall CDlgTotalProtein::_GetBaseClass(void)" (?_GetBaseClass@CDlgTotalProtein@@KGPAUCRuntimeClass@@XZ) 已经在 DlgT

急!C++生成release文件时没出错,但到另一台电脑时点击运行没反应

问题描述 急!C++生成release文件时没出错,但到另一台电脑时点击运行没反应 求大神指点,我用C++生成release,在属性中将配置和配置管理器都改成了release,然后我把release文件夹下文件,就只有个.exe和.pdd都复制到别人电脑上了,但是点击运行时没有反应,也没有报错?请问是什么原因,求指点 我使用了TEEchart控件,发现没有TEEchart时候能运行,一旦有了TEEchart就出现上述问题了 解决方案 安装这个:http://download.csdn.net/d

玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

原文:玩转Windows服务系列--Debug.Release版本的注册和卸载,及其原理 Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Services.exe -service 卸载 Services.exe -unregserver 原理 Windows服务的Debug.Release版本的注册和卸载方式均已明确.但是为什么要这么做呢. 最初我在第一

模块"XX"可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版

我的系统是win7 64位的 装了绿色版VC6.0之后运行某个MFC程序系统提示差msvcrtd.dll,,网上下载了一个,按网上的说法,放在C:\Windows\System32下后 cmd运行  regsvr32 msvcrtd.dll 即可.但系统又提示"msvcrtd.dll可能与您正在运行的Windows版本不兼容.检查该模块是否与regsvr32.exe的x86或x64版" 无奈,找了好多资料终于发现  要把这个文件放在C:\Windows\SysWOW64下. 按照这个方

VC++2005、VC2008中Release版本设置为可调试的设置方法

一.很多时候需要在Release版本下调试程序,可以使用以下方法设置: 1.无效断点所在的项目和启动项目的设置:项目->属性->配置属性->C/C++->常规->调试信息格式,这里不能为『禁用』: 2.项目->属性->配置属性->链接器->调试->生成调试信息,这里设为『是』: 3.C/C++->优化->优化选择『禁用』: 4.删除解决方案下的.ncb文件: 5.工具->选项->调试->『要求源文件与原始版本完成匹配