3

我希望能够估计我的 C++ 程序使用了多少代码和静态数据?

有没有办法通过查看可执行文件或目标文件来找出这个问题?或者也许我可以在运行时做些什么?

otool 有帮助吗?

4

2 回答 2

8
  • “大小”是传统工具,适用于所有 unix 风格。
  • “otool”有更精细的粒度控制并且有很多选择。

.

$ size python
__TEXT  __DATA  __OBJC  others  dec     hex
860160  159744  0       2453504 3473408 350000
于 2008-08-30T05:12:31.397 回答
2

我认为 otool 可以提供帮助。具体来说,“otool -s {segment} {section}”应该打印出详细信息。我不确定您是否可以在不指定部分的情况下获得有关 __DATA 或 __TEXT 的信息。也许这些尺寸在马赫头中报告:“otool -h”?

otool -s  __DATA __data MyApp.bundle/Contents/MacOS/MyApp
otool -s __TEXT __text MyApp.bundle/Contents/MacOS/MyApp

无论如何,Apple 在此处记录了复制到每个部分的内容:Apple's mach-o format documentation

于 2008-08-30T02:02:39.233 回答