调试 - 对象实例
Debugging - object instance
到目前为止,我使用调试的目的只是知道异常发生在哪一行以及成员的值。我不明白观看这样的对象有什么用:
Name Variable
objA 0x10cf990
甚至在光标到达该行之前,objA 也包含一个垃圾值。如果无法读取值,那又有什么意义呢?有没有办法查看对象的数据?
例如
class A{
name = "im a";
String getName(){
return name;
}
}
main(){
A* objA = new A(); //breakpoint here
}
在调试时,我可以看到成员的值和 objA 函数的返回值吗?
喜欢
Name Variable
objA 0x10cf990
--name im a
--getName() im a
我想我以前尝试过这样的事情。我不太确定。
系统: Linux Mint 15 64位IDE:Kdevelop4(我认为它的调试器是GDB)
您最初在objA
中看到垃圾值,因为它尚未初始化。单步跳过此行后,它将更改为有效值。
A* objA = new A();
新的有效值对您来说也可能是垃圾,但请记住,objA
是指向 A 的指针,因此类似垃圾的值实际上是一个有效的内存地址。
在调试时,我可以看到成员的值和返回的值吗 对象A的功能?
现在可以在"监视"窗口中展开objA
以查看其成员的值,在这种情况下name
。请记住,在初始化 objA 之前,您可能能够看到 name
的值,但同样,这将是一个垃圾值。
我不知道KDevelop是否支持监视功能。但是你可以在Visual C++中做到这一点。若要监视函数的返回值,请将函数调用添加到"监视"窗口,例如:
objA->getName()
在"监视"窗口中监视函数时要小心,如果函数修改数据,则可能会产生副作用并使您感到困惑。
相关文章:
- 对象实例化调用构造函数的次数太多
- C++ 中的基本单一实例对象
- 在 C++ 中,类实例对象 do memcpy 总是崩溃
- C++:在函数中使用当前实例(对象)
- 单一实例对象是否通过线程安全返回shared_ptr
- std::system 实例化单一实例对象时的异常
- 使用unique_ptr的单一实例对象
- 如果已创建 mongocxx::实例对象,则无法创建该对象
- 单一实例对象的未解决外部符号链接错误
- 实例对象如何查看函数的对象参数的私有成员?
- 在C++中调用单一实例对象的正确方法
- 声明模板化实例对象的函数指针
- 如何在"boost::function"中访问类实例(对象)指针?
- 删除单一实例对象 cpp 时出现内存泄漏
- 从 EXE 和 DLL 访问单一实例对象中的成员变量
- 如何在 C++11 中将 vector 与引用类型实例对象一起使用
- 为什么在构造函数退出时创建新的实例(对象)
- "类实例对象"未在此范围内声明
- c++实例对象的函数指针
- 如何正确存储多个实例对象