如何解决给定一个指针,gdb如何获得其类型?
| gdb如何知道指针指向int
或struct
或任何其他数据类型?
解决方法
当您使用调试选项(ѭ3comp)进行编译时,2ѭ通过读取嵌入在可执行文件中的调试信息(也称为符号表)来了解代码中指针变量的类型。
,来自:检查符号表
什么是expr
打印表达式expr的数据类型。实际上不会评估expr,并且内部不会发生任何副作用操作(例如赋值或函数调用)。请参阅“表达式”部分。
ptype expr
ptype
打印表达式expr类型的描述。 ptype通过打印详细描述而不仅仅是类型的名称,从而与whatis有所不同。例如,对于此变量声明:
struct complex {double real; double imag;} v;
这两个命令给出以下输出:
(gdb) whatis v
type = struct complex
(gdb) ptype v
type = struct complex {
double real;
double imag;
}
,gdb无法知道,除非指针来自可以确定类型的变量或表达式。
如果给gdb 0x4567789,它不知道可能指向什么。但是,如果int * p具有该值,则gdb可以引用该值并为您提供该地址包含的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。