当使用 Leaks Instrument 的“Gather Leaked Memory Contents”时,它似乎只给了我一个对象的十六进制内容,而不是向我显示它旁边的 ASCII 字符串(就像世界上所有其他十六进制转储一样)。更糟糕的是,这个框是不可选择的,我什至不能将它复制到一个像样的十六进制编辑器中以获得字符串视图。
有这样的疯狂的理由吗?
当使用 Leaks Instrument 的“Gather Leaked Memory Contents”时,它似乎只给了我一个对象的十六进制内容,而不是向我显示它旁边的 ASCII 字符串(就像世界上所有其他十六进制转储一样)。更糟糕的是,这个框是不可选择的,我什至不能将它复制到一个像样的十六进制编辑器中以获得字符串视图。
有这样的疯狂的理由吗?
查找内容的一种方法是从命令行运行泄漏。找到您正在运行的应用程序的进程名称(您可以使用诸如 from Activity Monitor 或 top 之类的工具),然后在终端中运行:
leaks myprocessname
它不仅应该打印出数据的地址、大小和类型,如果可以的话,还应该打印出内容。当然,您也可以将结果从那里复制到您喜欢的任何十六进制编辑器中。
因为 Leaks 工具的重点是向您显示东西在哪里泄漏,这比what有用得多。当你知道事情在何时何地被泄露时,回到 Xcode,设置断点,然后单步执行。如果泄漏的内容对为什么很重要,那么您可以在调试器中实时看到这一点,而不是事后在 Instruments 中汇总。