我相信(如果我错了,请纠正我),当使用gdb
和进行远程调试时gdbserver
,在目标下运行的二进制文件gdbserver
不需要二进制文件中的调试信息,但是运行主机需要gdb
。
我们的带有调试符号的应用程序二进制代码约为112兆(!)。如果我运行strip,二进制文件仅6.7兆,这将更快地部署到我们的目标。
Qt Creator是否可以在部署二进制文件之前先将其删除?我们还能调试吗?
要剥离符号,可以让Qt Creator在qmake和make之后运行最后的构建步骤,该步骤在应用程序包中的二进制文件上调用“ strip”命令。例如: -
strip -u -r ./MyApplication/Contents/MacOS/MyApplication
为了进行调试,您需要在构建期间生成一个单独的.dsym文件,其中包含符号。如果它驻留在主机上,则调试器应自动将其拾取;它与lldb有关,尽管与gdb有关,您可能需要手动加载符号文件。
如何启用额外的构建步骤
从右侧工具栏中选择项目
确保您位于“构建并运行”选项卡上(GraphicsScene只是项目的名称)
在“构建步骤”下,您将看到两个步骤,qMake
然后是Make
。选择添加构建步骤作为自定义过程步骤
填写您可能需要更正路径的相关字段,而不只是复制这些路径:
构建完成后,strip命令将运行。如果有任何错误,则可能是strip命令的路径或应用程序包可执行文件的路径。
请注意,如果需要剥离的完整路径,则该路径位于/ usr / bin / strip中。
至于符号文件,我相信您可以将addsymbolfile
命令与dsym文件路径的参数一起使用。但是,此后不建议使用gdb,您现在应该真正使用lldb,一旦Spotlight为dsym文件建立索引,它就会自动找到dsym文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句