c++ - VC++调试器调用类成员函数

标签 c++ debugging visual-c++

不久前,我阅读了《调试 Windows 程序》一书,其中广泛讨论的技巧之一是从 Visual C++ 调试器(快速)监 window 口调用函数。 幸运的是,我手头没有拷贝,而且我能找到的关于这方面的小文档真的很差。

那么如何在监 window 口中调用成员函数呢?如果函数存在于 DLL 中怎么办?如果它是命名空间的一部分怎么办?你能传递重要的参数吗?

让我们使用这个例子:我想调用 QList<MyType> 的 size() 方法,其中 MyType 是自定义类型。

谢谢!

最佳答案

它有效并且非常有用。您可以在监 window 口中评估表达式或打开快速监 window 口(ctrl-alt-Q——一个非常方便的快捷方式)。它会让你调用大多数形式的成员函数。它通常会失败的唯一情况是你有重载的运算符,例如使用智能指针。对于没有重载运算符的简单类,您应该会发现它应该运行良好。我认为它应该接受非平凡的参数(尽管显然它取决于非平凡的程度!)除了调用返回值的函数外,您还可以调用修改对象的函数——只调用 getter 方法没有限制。

另一件需要记住的显而易见的事情是,所有变量都是在本地堆栈帧中计算的,因此请确保变量从堆栈中的当前点可见。

关于c++ - VC++调试器调用类成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1590961/

相关文章:

c++ - 使用 OpenGL 打印到 NVidia 中的 HUD

c++ - 使用 Eclipse CDT 调试 ncurses

c++ - NULL 直接传递给需要 const 引用参数的函数 (VC++ 4.2)

c++ - 我正在尝试从文件中读取字节并且制表符被跳过

c++ - 在 C++ (Win32) 中解析 XML 的方法

c++ - vector<vector<double>> 到 mxArray 使用 memcpy

delphi - 从 Delphi 代码调用 Visual C++ DLL 的函数

asp.net - 如何在 Firefox 中启用 javascript 调试器

java - 为什么局部变量不显示在 Eclipse 的调试 View 中?

c++ - 查找 MSVC 中包含 C++ 命名空间的位置