gpt4 book ai didi

python - 获取gdb的python接口(interface)中的所有全局变量/局部变量

转载 作者:太空狗 更新时间:2023-10-30 02:44:19 30 4
gpt4 key购买 nike

我通过阅读帖子学到了 Printing all global variables/local variables我们可以在gdb的命令行中获取当前帧的所有变量。

我的问题是如何在 gdb 的 python 接口(interface)中获取当前帧的所有变量,因为 info locals 只是以字符串形式给出结果,这不方便进一步使用。

最佳答案

问题变了吗?我不确定,但我怀疑是因为我之前的回答是非常错误的。我依稀记得这个问题曾经是关于全局变量的,在这种情况下是正确的:

I don't think there is a way. GDB symbol tables are only partially exposed to Python, and I believe the lack of an ability to iterate over them is one of the holes.

但是,在 Python 中迭代本地变量很容易。您可以使用 gdb.selected_frame() 获取选定的帧。然后,您可以从框架中使用 block() 方法获取 Block 对象。

Block 对象代表一个范围。您可以直接遍历 Block 以从该范围获取变量。然后,使用 Block.superblock 向上一个范围。当您点击带有 function 属性的 block 时,您已经点击了函数的最外层范围。

关于python - 获取gdb的python接口(interface)中的所有全局变量/局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30013252/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com