阅读:1078回复:9
da伙休息一下,帮我看个问题
for(int i=0;i<8;i++)
{ B=(B*2)&0xff; _outp(base+5,B); A=_inp(base+5); if(A!=B) return FALSE; } 为什么这段代码在Debug下能通过,而在Release下却得不到预期的结果。 |
|
沙发#
发布于:2002-05-30 10:06
是什么样的错误?
另外A B的定义是怎样的? |
|
板凳#
发布于:2002-05-30 10:22
是什么样的错误? int A,B 我的要求是: 我启动程序时,首先运行这段代码。如电脑上有板卡,则进入程序。如无,则退出应用。 错误是: 板上有卡时,用Debug下的程序能进入应用程序,而Release下的却无法进入。真是奇怪。 |
|
地板#
发布于:2002-05-30 10:24
你在for前面加个__asm int 3
然后在release方式下调试它,使它停下来,然后钻进入看看汇编代码,跟踪一下 |
|
|
地下室#
发布于:2002-05-30 10:30
你这样做:
打开工程设置,在Release设置中把c/c++选项卡里的debug info设为program database,在link卡中选上Generate debug info项. 跟踪调试一下,就知道是否编译优化的原因了. |
|
5楼#
发布于:2002-05-30 10:49
你这样做: 哎,估计我也调不出了。水平。。。。。 给分算了。 |
|
6楼#
发布于:2002-05-30 10:54
你的是否对话矿程序啊,检查以下窗口创建过程中有无可能造成无限递归调用的地方(比如 用了edit控件,在changed事件中对spin控件setpos).
|
|
7楼#
发布于:2002-05-30 11:24
检查一下VC的优化设置选项。
应该是这个问题。 |
|
|
8楼#
发布于:2002-05-30 11:49
B赋初值了没有?
|
|
|
9楼#
发布于:2002-05-30 13:13
在程序中多写几次端口,或加点延迟,试试?
|
|