07GDB查看变量类型
1. whatis查看类型:
a. 查看变量类型:eg: whatis one_person
b. 查看函数定义:eg: whatis func_name,如果有多个同名的函数,那么只能看到一个
c. 查看某个类的函数定义:whatis Person::app1,查看的是对象成员,而不是类成员,可以使用对象的方式来查看: whatis current_person.app1
2. ptype查看类型的详细信息:
a. ptype 变量;
b. ptype /m 变量,只显示属性,不显示方法
c. ptype /o 变量/类:查看对象属性的字节占用偏移。
d. 有继承关系,且父类有虚函数的的时候,开启开关: set print object on,然后再使用ptype,可以查看到真实的类型
另外:
1. 如果一个类对对象中包含了虚函数,那么这个对象会额外增加8个字节开销,来存储虚函数表和虚继承表
2. 如果一个类中有char*或者char[]时候,在使用GDBp命令查看类的对象的时候,都是可以将char*或者char[]中的内容直接显示出来的。
3. 在GDB的p命令查看类的对象的时候,即便是是类的私有属性,也是可以直接显示出来的,如下图所示