Deployment 调试部署时附带的符号

Deployment 调试部署时附带的符号,deployment,debug-symbols,Deployment,Debug Symbols,我想知道为什么要部署软件及其相关的调试符号。优势和劣势是什么?是否存在代码泄露问题(与信息安全相关的问题)?您可以使用或不使用调试信息进行编译,或者在unix系统上,您可以运行strip从已编译的可执行文件中删除调试信息 缺少调试信息将: 缩小二进制大小。删除所有调试信息会使文件大小降低50% 启用更多编译器优化。如果您仍在添加调试信息,则某些编译器优化实际上不起作用 使调试更加困难。 您通常不想让您的竞争对手和黑客更容易地拆解您的产品 尽管任何核心文件对开发人员都不太有用 所以在一般的

我想知道为什么要部署软件及其相关的调试符号。优势和劣势是什么?是否存在代码泄露问题(与信息安全相关的问题)?

您可以使用或不使用调试信息进行编译,或者在unix系统上,您可以运行
strip
从已编译的可执行文件中删除调试信息

缺少调试信息将:

  • 缩小二进制大小。删除所有调试信息会使文件大小降低50%
  • 启用更多编译器优化。如果您仍在添加调试信息,则某些编译器优化实际上不起作用
  • 使调试更加困难。
    • 您通常不想让您的竞争对手和黑客更容易地拆解您的产品
    • 尽管任何核心文件对开发人员都不太有用
所以在一般的开发中,您需要调试信息,但对于QA和发布,您通常希望将其忽略。如果您向您更信任的客户提供库,那么您可能更倾向于将其保留