社区
C++ 语言
帖子详情
如果调试的时候一切正常,运行时出错,一般是什么原因?
csdn5211
2008-03-10 10:51:41
感谢大家关注了我的上一个帖子
http://topic.csdn.net/u/20080309/11/37224545-a636-4bea-9246-c5662ae2dcfd.html
这个帖子已经结了。
问题解决了,被我发现了一个隐藏极深的数组越界,而不是vector本身的问题。
现在的问题是,改正之后在debug时可以正常工作了,但是运行程序的时候还会出原来的错误,这又是为何呢?
...全文
2227
18
打赏
收藏
如果调试的时候一切正常,运行时出错,一般是什么原因?
感谢大家关注了我的上一个帖子 http://topic.csdn.net/u/20080309/11/37224545-a636-4bea-9246-c5662ae2dcfd.html 这个帖子已经结了。 问题解决了,被我发现了一个隐藏极深的数组越界,而不是vector本身的问题。 现在的问题是,改正之后在debug时可以正常工作了,但是运行程序的时候还会出原来的错误,这又是为何呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baobao2010
2008-04-30
打赏
举报
回复
标记
回头看
csdn5211
2008-03-10
打赏
举报
回复
bounds checker居然测不出错误,郁闷了。
ppzzhhsky
2008-03-10
打赏
举报
回复
指针跑飞了
或者是内存泄露
ryfdizuo
2008-03-10
打赏
举报
回复
函数中有一个未被使用的变量,在 Debug 版中它有可能掩盖一个数组越界,而在 Release 版中,这个变量很可能被优化调,此时数组越界会破坏栈中有用的数据。当然,实际的情况会比这复杂得多。与此有关的错误有:
非法访问,包括数组越界、指针错误等。例如
void fn(void)
{
int i;
i = 1;
int a[4];
{
int j;
j = 1;
}
a[-1] = 1;//当然错误不会这么明显,例如下标是变量
a[4] = 1;
}
j 虽然在数组越界时已出了作用域,但其空间并未收回,因而 i 和 j 就会掩盖越界。而 Release 版由于 i、j 并未其很大作用可能会被优化掉,从而使栈被破坏。
独孤过儿
2008-03-10
打赏
举报
回复
检查指针和内存的部分,运行时错误百分之九十九点九都是这类的...
Supper_Jerry
2008-03-10
打赏
举报
回复
这种问题我也碰到过,
一般说来还是内存泄漏或者越界访问造成的。
csdn5211
2008-03-10
打赏
举报
回复
不是debug和release的问题,区别是我点"Debug->go"就一切正常,我点"Excute"就不行。
csdn5211
2008-03-10
打赏
举报
回复
不是初始化问题。调试和直接运行有什么区别吗,我怎么觉得都一样呢?都是同一个东西啊。
michney
2008-03-10
打赏
举报
回复
还是越界
Supper_Jerry
2008-03-10
打赏
举报
回复
使用工具查看一下吧。purify, bounds checker
abupie
2008-03-10
打赏
举报
回复
是不是忘记更新程序编译?
zengwenfu
2008-03-10
打赏
举报
回复
初始化问题,
moss830704
2008-03-10
打赏
举报
回复
应该是初始化的问题
babyvox1999
2008-03-10
打赏
举报
回复
语法正确,逻辑错误
ouyh12345
2008-03-10
打赏
举报
回复
1、优化选项可能会导致某些代码被忽略或次序不对,关闭优化试试
2、是否变量没初始化就使用了
3、debug和release在栈的恢复上的做法不同,看在发送消息时,是否忘计传参数了
taodm
2008-03-10
打赏
举报
回复
检查是否所有数据都进行过初始化。
z_kris
2008-03-10
打赏
举报
回复
原先的贴没看过
关注 学习
老腊肉泡酒
2008-03-10
打赏
举报
回复
指针跑飞了
或者是内存泄露
这样说话有意思.^^
易语言服务器
调试
输出为假,易语言判断、如果真、文本到整数比较时,
调试
时运行正常,编译后不正常...
今天在用易语言帮一个客户写程序的时候,发言一个奇怪的问题,就是在用判断、如果真命令比较2个文本到整数后的值时,在
调试
运行的时候,
一切正常
,但是编译出来后,运行不正常,不符合逻辑,最终经过
调试
输出,发现是因为文本到整数后,超出了易语言整数型变量的范围引起的该问题。下面记录一下我解决问题的过程。刚开始的代码是这样的:.版本 2文本1 = “20180801115”文本2 = “20180801116”...
Debug 运行正常,Release版本不能正常运行的相关详解
引言 如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程序可以象Debug版本一样运行。 如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过Release版本测试,然而当您测试的时候却发现问题,那么请看我们的
调试
规则1: 规则1: 经常性
VS2003 试图运行项目时
出错
: 无法在 Web 服务器上启动
调试
。您不具备
调试
此应用程序的权限。
今天因为项目需要,安装了.NET2003,但BS项目报错“试图运行项目时
出错
: 无法在 Web 服务器上启动
调试
。您不具备
调试
此应用程序的权限。此项目的 URL 位于 Internet 区域。有关更多信息,请单击“帮助”。”,通过原来我所知道的解决方法,一切都没有效果,还是不能
调试
,后面终于找到了解决方案,特此列出,以供大家参考(8是关键,解决我的问题的): 1:确认在“配置属性”中的“启用
关于stm32单步执行正常,全速运行结果不正确(时钟配置不正确)的问题
关于stm32单步执行正常,全速运行结果不正确(时钟配置不正确)的问题 现象,延时不正常,装载值与实际值不符。但是如果在时钟配置的部分在debug的情况下单步执行,那么
一切正常
,如果是全速运行,时钟配置将
出错
,本来是选择外部时钟72M,(我手动修改了SYSTICK中断时间,改为了10us,不是默认的1ms)SYSTICK的装载值是0x2CF,但是全速运行后,时钟却是16M,SYSTICK装载值也变成了0x9F。 查找了很多网上的办法也没有解决。 在system_stm32f1xx.c的文件中有这样一个变量u
试图运行项目时
出错
: 无法在 Web 服务器上启动
调试
。您不具备
调试
此应用程序的权限。此项目的 URL 位于 Internet 区域。有关更多信息,请单击“帮助”。
今天因为项目需要,安装了.NET2003,但BS项目报错“试图运行项目时
出错
: 无法在 Web 服务器上启动
调试
。您不具备
调试
此应用程序的权限。此项目的 URL 位于 Internet 区域。有关更多信息,请单击“帮助”。”,通过原来我所知道的解决方法,一切都没有效果,还是不能
调试
,后面终于找到了解决方案,特此列出,以供大家参考(8是关键,解决我的问题的):
*****************
!!!!!!!!!!!!此条最重要!!!!!!!!!!!!
C++ 语言
65,178
社区成员
250,527
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章