不久前,我阅读了《调试 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/