Qt 5.x嵌入式调试-部署剥离二进制文件?

史蒂夫

我相信(如果我错了,请纠正我),当使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xcode 6嵌入式二进制文件

QT 4.8.x和VS2012预置二进制文件?

未从 Yocto 中生成的二进制文件中剥离的调试符号

嵌入式Linux上的QT5 eglfs(TI am355x evm入门套件)

无法在Xcode中嵌入嵌入式项目的二进制文件

如何在Qt5中将二进制数据写入stdout

Xcode:嵌入式二进制文件上的相对路径

如何为没有嵌入式二进制文件的iOS构建动态框架?

带有iOS框架的嵌入式二进制文件

什么是Xcode中的嵌入式二进制文件?

何时检查嵌入式二进制文件的“如果需要,复制项目”?

Sphinx:链接到嵌入式二进制文件(PDF)

xcode使用buildscript添加嵌入式二进制文件

QT5 和 Matplotlib - 设置嵌入式图形的几何图形

Qt Creator正确设置了Raspberry Pi 2的交叉编译和远程部署-生成错误架构的二进制文件

缺少 PyQt5 二进制文件

什么时候应该在Xcode中使用“嵌入式二进制文件”而不是“链接框架”?

iOS错误“嵌入式二进制文件未使用与父应用程序相同的证书签名”

自定义Cordova插件:将框架添加到“嵌入式二进制文件”

Swift Xcode无法从项目中删除嵌入式二进制文件/链接的框架和库

使用相同的证书签名但出错:嵌入式二进制文件未使用相同的证书签名

如何解决:嵌入式二进制文件未使用相同证书签名

错误:嵌入式二进制文件未使用与父应用程序相同的证书进行签名

如何在SwiftUI Mac应用程序中运行嵌入式二进制文件?

前往:将静态文件嵌入二进制文件

转到:将bash脚本嵌入二进制文件

将编译时间信息嵌入二进制文件

嵌入式二进制验证实用程序错误

删除“ DerivedData”后,Xcode不会添加“嵌入式二进制”