VC++中调试的问题:无法查看局部变量的值
只能查看当前类的成员变量,或者当前函数的参数,但是函数内定义的局部变量在watch窗口中看不到(我确定当前范围是有效的),“CXX0017:Error:symbol"st...
只能查看当前类的成员变量,或者当前函数的参数,但是函数内定义的局部变量在watch窗口中看不到(我确定当前范围是有效的),“CXX0017: Error: symbol "sth" not found”。
可能的原因是什么呢?
Visual Studio .Net 2003
对不起,回答的都不对
还有一个现象,就是即使是函数参数,如果函数中没有使用到的话(当然编译时还有个Warning),watch里也看不到。
再说一遍,我确定断点处该变量是有效的。我现在怀疑是编译器加了比较高的优化选项,有人知道VC++中编译优化选项在哪控制么?类似GCC中的-O2之类的 展开
可能的原因是什么呢?
Visual Studio .Net 2003
对不起,回答的都不对
还有一个现象,就是即使是函数参数,如果函数中没有使用到的话(当然编译时还有个Warning),watch里也看不到。
再说一遍,我确定断点处该变量是有效的。我现在怀疑是编译器加了比较高的优化选项,有人知道VC++中编译优化选项在哪控制么?类似GCC中的-O2之类的 展开
7个回答
展开全部
你的问题可能在于控件还没有创建:
例如:
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下调试。
例如:
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下调试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
局部变量!!!
在调用它的函数内部有效 ...
在它操作的地方下断点...就可以了...
你看不到是因为没在这个调用它的函数内下任何断点(我说的是函数内)
不想下断点或没办法下, 那就TRACE出来
在调用它的函数内部有效 ...
在它操作的地方下断点...就可以了...
你看不到是因为没在这个调用它的函数内下任何断点(我说的是函数内)
不想下断点或没办法下, 那就TRACE出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要把断点设在那个局部变量上
例
void a(int b)
{
XXXXXXXX;把断点摄在这里可以看到b
int c;
int c=XXXX;把断点社这里并按F10或者在下一行社断点就能看到
XXXXXXXX;
}
例
void a(int b)
{
XXXXXXXX;把断点摄在这里可以看到b
int c;
int c=XXXX;把断点社这里并按F10或者在下一行社断点就能看到
XXXXXXXX;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你从它的定义开始设置断点尝试一下
谁会想到,你会查看没有用到的变量????
汗!!汗!!!!!!!!!!!!!!!!
谁会想到,你会查看没有用到的变量????
汗!!汗!!!!!!!!!!!!!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如静态变量是看不到的,通过TRACE或者OutputDebugString打印出来看。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询