VC++中调试的问题:无法查看局部变量的值

只能查看当前类的成员变量,或者当前函数的参数,但是函数内定义的局部变量在watch窗口中看不到(我确定当前范围是有效的),“CXX0017:Error:symbol"st... 只能查看当前类的成员变量,或者当前函数的参数,但是函数内定义的局部变量在watch窗口中看不到(我确定当前范围是有效的),“CXX0017: Error: symbol "sth" not found”。

可能的原因是什么呢?

Visual Studio .Net 2003
对不起,回答的都不对
还有一个现象,就是即使是函数参数,如果函数中没有使用到的话(当然编译时还有个Warning),watch里也看不到。

再说一遍,我确定断点处该变量是有效的。我现在怀疑是编译器加了比较高的优化选项,有人知道VC++中编译优化选项在哪控制么?类似GCC中的-O2之类的
展开
 我来答
以画屏屏8748
2008-07-10 · TA获得超过7191个赞
知道大有可为答主
回答量:2581
采纳率:0%
帮助的人:3322万
展开全部
你的问题可能在于控件还没有创建:
例如:

if (m_adoDC1.GetSafeHWnd())
{
m_adoDC1.GetClientRect(rect);

iHeight=rect.Height();
iWidth=rect.Width();

m_adoDC1.MoveWindow(cx,cy,iWidth,iHeight,TRUE);

m_dataGrid1.MoveWindow(0,0,cx,cy-iHeight,TRUE);
}Top

另外不要在Release下调试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gm7996
2008-07-10 · TA获得超过1199个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:547万
展开全部
局部变量!!!
在调用它的函数内部有效 ...
在它操作的地方下断点...就可以了...
你看不到是因为没在这个调用它的函数内下任何断点(我说的是函数内)

不想下断点或没办法下, 那就TRACE出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangdw2006
2008-07-11 · TA获得超过1614个赞
知道大有可为答主
回答量:2521
采纳率:0%
帮助的人:1862万
展开全部
你需要把断点设在那个局部变量上

void a(int b)
{
XXXXXXXX;把断点摄在这里可以看到b
int c;
int c=XXXX;把断点社这里并按F10或者在下一行社断点就能看到
XXXXXXXX;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兵戈战戟
2008-07-11 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:196
采纳率:100%
帮助的人:0
展开全部
你从它的定义开始设置断点尝试一下

谁会想到,你会查看没有用到的变量????
汗!!汗!!!!!!!!!!!!!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风轻云度
2008-07-10 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
比如静态变量是看不到的,通过TRACE或者OutputDebugString打印出来看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式