gpt4 book ai didi

c++ - 如何在 gdb 中打印指针列表的内容?

转载 作者:搜寻专家 更新时间:2023-10-31 00:33:14 29 4
gpt4 key购买 nike

我有以下指针列表:

(这是一个简单的例子,但实际上,我的列表可能由数百个条目组成)

{0xae5c4e8, 0xa09d4e8, 0xa753458,  0xae554e8}

我成功地打印了指针内容,一个接一个,使用:

p *(const Point *) 0xae5c4e8

如何在一个命令中打印前面列表的内容?

最佳答案

没有固定的方法可以做到这一点。如果您可以键入 print *(*p @ 23) 会很酷——在另一个表达式中使用 @ 扩展,从而导致隐式循环——但您可以't.

但是,有两种不错的方法可以做到这一点。

一种方法是使用 Python。像这样的东西:

(gdb) python x = gdb.parse_and_eval('my_array')
(gdb) python
> for i in range(nnn):
> print x[i].dereference()
> end

您可以非常轻松地将它包装在一个用 Python 编写的新 gdb 命令中。

另一种方法是使用 define 使用 gdb 命令语言创建您自己的命令。这有点丑陋,与 Python 方法相比有一些(小的)限制,但它仍然可行。

最后,曾几何时,有一个名为“决斗”的 gdb 扩展提供了此功能。不幸的是,它从未被合并。

关于c++ - 如何在 gdb 中打印指针列表的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253624/

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