在类型 flow_t 中,大多数成员的值为零。我想查看哪些成员的值不为0。我使用命令x/1920xb
查看内存,但不方便。
typedef struct flow {
... // There are more than 100 members. Total size is 1920 bytes.
}flow_t;
最佳答案
在 gdb 中没有内置的方法来执行此操作。
这可以通过一些脚本来完成。像往常一样,有两种基本方法。
“老派”方法是结合使用 set logging
和 shell
来获得您想要的效果:将结果打印到文件,然后 grep for有趣的部分。
较新的方法是用 Python 编写一个新命令。这并不难做到;您可以查找现有的 pahole
脚本来查看遍历结构定义的示例。
关于c - 如何使用 gdb 过滤大型结构中的非零成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113082/