gpt4 book ai didi

c - GDB - 我可以在内存中找到大数据元素吗

转载 作者:行者123 更新时间:2023-12-01 11:50:36 24 4
gpt4 key购买 nike

我有一个程序,其中包含大量静态定义的变量。如果我在 GDB 中启动它,在 main 中设置一个断点,然后运行 ​​pmap,我会看到已经分配了大约 100MB 的数据:

08838000 107576K rw---    [ anon ]

我已经找到了一堆具有大量静态定义数组(例如 200,000 个整数)的函数,并在找到它们时删除了它们。

有什么方法可以找出堆/数据段上最大的项目是什么?在 GDB 中还是通过任何其他方式?

最佳答案

可以使用像 nm(1) 这样的目标代码检​​查实用程序找到这些信息:

nm --size-sort <object-file.o>

此外,如果有足够的调试信息,objdump 可以为完全链接的程序提供额外的见解。

实用程序通常是特定于目标平台的,因此在交叉编译时必须注意使用正确的程序(即像 x86_64-linux-gnu-gcc-nm 而不仅仅是 nm).

关于c - GDB - 我可以在内存中找到大数据元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613713/

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