2009-08-09 34 views
2

使用Mac OS X 10.5我试图弄清楚如何使用dtrace来跟踪Mach-O二进制文件的执行情况。但是,似乎这些符号都被剥离了,所以任何试图使用基于内部类/方法名称的探测器都会失败。重构从Mach-O二进制文件中去除的符号

我能够使用类转储来转储它们实现的类,方法名称和地址,所以我假设你可以使用它来重建二进制文件中的符号。这甚至是可能的,如果有的话,是否有人知道任何可能有助于它的工具或一些能帮助我更好地理解它的阅读材料?

这是我第一次尝试使用这个级别的二进制文件,所以任何帮助将不胜感激。

+0

你是如何使用探针的?你尝试过'objc'提供者吗? – 0xced 2010-01-08 22:56:01

回答

0

不,这是不可能的。当符号被剥离时,信息会在每个方法的代码开始的地方丢失。你将不得不反汇编代码来重建这些信息。如果你只知道每个类的方法是什么,你仍然不知道它们在代码中的位置,这是dtrace所需要的。

+0

其实,我确实有方法和类的实现地址。像我上面提到的那样,一个叫做class-dump的整洁小工具。 – chrisbdaemon 2009-08-11 18:08:17