c++ - 调试 "one line"方法

标签 c++ visual-studio debugging visual-c++

想象一下(在头文件中):

int getInt() { return m_intValue; }

int getInt() 
{
    return m_intValue;
}

如何调试第一个示例,以查看 m_intValue? 在示例 2 中,我可以在第一行设置断点,按 F10(跳过)然后查看(在悬停 m_intValue 之后)m_intValue 中的内容。或者在 return m_intValue 行添加 BP。

但是当我在第一个版本中放置BP时,我看不到m_intValue的调试信息。

这个例子只是示范性的。我知道我可以在调用 getInt 的地方看到值(作为返回值查看)。但在更复杂的情况下(例如,由于超出范围而修改了返回值)我真的希望在处理返回时看到 m_intValue

希望你能理解我的问题。

谢谢!

最佳答案

您会在错误的代码处设置断点。它在函数入口点中断,this 变量尚未初始化。如果你想调试这些访问器,你肯定会喜欢第二种编码风格。你不应该,它没有错误。

如果您真的需要使用第一个片段中编写的代码检查对象,则切换到反汇编 View 并单步执行堆栈框架设置代码。

关于c++ - 调试 "one line"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5614826/

相关文章:

c++ - Qt 和 C++ : app crashes only in debug mode

c++ - 用比声明的值少的值初始化一个 int 数组,它只会添加 0 作为值吗?

c++ - 从 stdio 文件构造 ofstream

c++ - 从头文件自动链接静态库

windows - Visual Studio 2012 无法识别 MSBuild.exe

c - 如何在 gdb 中打印 OpenMP 并行区域的局部变量?

debugging - 禁用 Chrome "plugin not responding"消息

c++ - Release模式下迭代器的绑定(bind)检查 (c++)

c++ - 当我使用 CMake 编译程序以捕获异常时,会发生编译错误。任何人都可以帮助我吗?

asp.net - 无法加载文件或程序集'Microsoft.CodeDom.Providers.DotNetCompilerPlatform