python - 如果不是内存,如何直接输出gdb中变量的类型?

标签 python gdb

在尝试使用 Python 开发 gdb 插件时,我在尝试直接获取变量的类型时遇到了以下错误。

(gdb) p appendLock->owner                                                                                                                
$2 = (Arachne::ThreadContext *) 0x7ff620001a40
(gdb) whatis appendLock->owner                                                                                                           
Attempt to take address of value not located in memory.
(gdb) ptype appendLock->owner                                                                                                            
Attempt to take address of value not located in memory.

有没有办法解决这个问题,以便可以直接获取变量的类型?

最佳答案

看来有一种直接的方法可以使用 Python API 来执行此操作,从而绕过此问题。

(gdb) python print gdb.parse_and_eval("appendLock->owner").type
Arachne::ThreadContext *

关于python - 如果不是内存,如何直接输出gdb中变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216203/

相关文章:

c++ - 远程 GDB 检查点/ fork 失败

c - Mac OS X Mavericks - gdb - 附加到进程时无法设置断点

python - 使用正则表达式在字符串中的等号后面查找单引号python

python - 如何根据名称为单个条形着色

python flickr api用于组搜索并获取图像数据集

python - 在字典列表中附加缺失值

python - 将 Pandas 数据框乘以字典

c - 通过检查核心和调用堆栈了解使用 GDB 的 C 指针

c++ - 访问旧的堆栈帧

linux - 无法在 gdb 中加载共享库