2011-05-12 31 views
5

最近我惊讶地发现当前版本的GDB支持python scrippting,这很可能意味着我可以在调试程序时绘制变量 - 这是我很久以前梦寐以求的。然而,我很快就陷入了困境,因为我无法从“GDB”中获取变量的值并将其分配给一个python变量。该方法应该在gdb模块内,但我不知道要调用哪个函数。有人知道吗?请告诉我:)谢谢!如何使用GDB的新python支持将变量分配给python?

回答

3

为了访问可变x在当前选择的GDB框架,你可以使用

x = gdb.selected_frame().read_var("x") 

这会gdb.Value实例分配给x

+0

谢谢!你的回答非常有帮助,链接是信息。只是另一个问题:我有一个Fortran数组以这种方式分配给一个python变量“x”,我想将这个gdb.Value类型转换为一个python列表 - 我必须通过元素来完成这个元素,对吧?因为似乎没有一个单一的功能来实现这一点。谢谢! – mayasky 2011-05-12 14:40:04

+0

@mayasky:应该可以直接将地址转换为一些'ctypes'或NumPy数组,但我不知道具体如何。 – 2011-05-12 17:16:42

相关问题