目前在 gdb 中,我可以打印包含结构类型的容器的内容,例如 std::list。但是,这种类型非常大,我只需要容器中每个项目中某些选定字段的值。因此,假设我有一个包含大约 100 个字段的结构,并且容器中有 3 个项目并且需要显示该type
字段。所以:
(gdb) p items
会显示很多噪音,而
(gdb) p items[0].type
不适用于std::list
,此外,使用 list 我可以轻松地仅显示第一项的值(其他需要大量带有类型转换的意大利面条,字段到达等),而我需要一些东西,比如:
(gdb-maybe) p {foreach i: items} i.type
它将像容器打印机通常那样显示每个项目,除了显示的值将仅包含该type
字段。
有什么方法可以实现这样的事情,或者有什么方法可以使用脚本提供这样的解决方案?