什么原因能导致在VS2010下运行正常,但是打开release版.exe运行过程中崩溃,debug版正常
什么原因会导致在VS2010下运行正常,但是打开release版.exe运行过程中崩溃,debug版正常?
如题!导致在VS2010下运行正常,开debug版.exe运行正常,但是打开release版.exe运行过程中崩溃,有可能是那些问题导致的?有没有可能是使用vector<shared_ptr< >>不当造成的?
------解决思路----------------------
用vs运行release版本,运行至崩溃处,如果弹窗就读一下错误信息,然后点重试就可以定位错误,之后再根据错误信息和错误位置查找错误原因。
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
------解决思路----------------------
一般就是初始化和越界,DEBUG版本,初始化的时候会有默认置数,而且数组比定义的要大一些。
例如定义char str[10],你访问到str+11也是没问题的。
实在不成,写日志,函数的入口及出口打印一下,看看哪个函数出的问题。
如题!导致在VS2010下运行正常,开debug版.exe运行正常,但是打开release版.exe运行过程中崩溃,有可能是那些问题导致的?有没有可能是使用vector<shared_ptr< >>不当造成的?
------解决思路----------------------
用vs运行release版本,运行至崩溃处,如果弹窗就读一下错误信息,然后点重试就可以定位错误,之后再根据错误信息和错误位置查找错误原因。
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
------解决思路----------------------
一般就是初始化和越界,DEBUG版本,初始化的时候会有默认置数,而且数组比定义的要大一些。
例如定义char str[10],你访问到str+11也是没问题的。
实在不成,写日志,函数的入口及出口打印一下,看看哪个函数出的问题。