作者:手机用户2602926907 | 来源:互联网 | 2023-05-19 06:34
if(m_password_markTRUE)这个条件不成立{m_redrawfalse;这里设置断点不会跳到这里in_str(N,请输入设置数据:,str);
if(
m_password_mark==TRUE)
//这个条件不成立
{
m_redraw=false;
//这里设置断点不会跳到这里
in_str('N',"请输入设置数据:",str);
//这里设置断点不会跳到这里
if(str!=NULL)
{
m_change_mark=TRUE;
para_in_sub(dc,para_i,LIGHTGREEN,'W',str);[color=#008000]//这里设置断点,但是会跳到这里来[/color]
}
delete str;
}
49 个解决方案
代码和调试信息不匹配了
rebuild all试试
if(m_password_mark==TRUE)//这个条件不成立
{
m_redraw=false;
//这里设置断点不会跳到这里
in_str('N',"请输入设置数据:",str);
//这里设置断点不会跳到这里
if(str!=NULL)
{
m_change_mark=TRUE;
para_in_sub(dc,para_i,LIGHTGREEN,'W',str);
//这里设置断点,但是会跳到这里来
//按F11又不会跳到para_in_sub这个方法中去,很是迷茫呀
}
delete str;
}
if(str!=NULL)
确定不满足条件?设置个观察点试试!
if(str!=NULL)
{
m_change_mark=TRUE;
para_in_sub(dc,para_i,LIGHTGREEN,'W',str);//这里设置断点,但是会跳到这里来
//按F11又不会跳到para_in_sub这个方法中去,很是迷茫呀
}
delete str;
当str为NULL时,要delete吗?
if(str!=NULL)
{
m_change_mark=TRUE;
para_in_sub(dc,para_i,LIGHTGREEN,'W',str);//这里设置断点,但是会跳到这里来
//按F11又不会跳到para_in_sub这个方法中去,很是迷茫呀
delete str;
}
楼主在if(str!=NULL) 前,打印出str,看看是不是NULL
重大发现:当条件成立时
para_in_sub(dc,para_i,LIGHTGREEN,'W',str);
//这里设置断点,但是会跳到这里来,
而且是会跳两次
//按F11又不会跳到para_in_sub这个方法中去,很是迷茫呀
用的啥IDE啊?VC6.0 VS2005 VS2008 GCC
把所有判断条件输出!
就不信,丫的在光天化日下还能乱来!……
Tools->Options->Debugging->General->Require source files to exactly math the original verison去掉这个勾选项
要求源文件与原始版本完全匹配项去掉吧,好好学英语……
以前遇到断点设置没有响应这样设置过,如果你遇到的不是程序逻辑问题,建议你修改VS设置试试
TRACE出来 这种情况遇到过 是调试器显示不正确 打印出来的才是最终值
你调的是什么版的(debug/release)。release会有这种情况
2008本来就不怎么受欢迎,建议用2005或者2010
哦,还有一个可能。就是比如你的一个类关联了两个cpp文件。比如类A有两个实现。就是在你的工程目录下面,其中一个cpp可能没有在VCIDE中。如果有的话去掉那个你不需要的。
这种情况一般在你有修改类文件或者有拷来拷去的动作后会出现。
楼主可以查一下。
AFXMessageBox(_T("Hello"));
楼主,release版会对代码进行优化的,调试的时候不一定是“所见即所得”
我曾在调release版的时候看内存,无论如何也得不到正确的内容
但通过OutputDebugString打印,直接运行release版本程序,用debugview看就是正确的了