编译期间启用调试选项时生成的可执行文件中的其他内容

时间:2017-05-03 10:57:45

标签: debugging compilation executable

我有一些小的源代码,我尝试用两种不同的方式编译: 1.没有调试选项 2.启用调试选项

我注意到,当我在编译期间添加debug enable compiler选项时,生成的可执行文件比未添加debug enable选项时生成的可执行文件大。 由于调试启用,添加到原始可执行内容的附加内容是什么。?

1 个答案:

答案 0 :(得分:0)

使用debug选项编译可执行文件时,会将调试信息添加到可执行文件中。调试程序时,调试器使用此信息来显示变量名称,函数名称和行号等内容。与调试应用程序和查看汇编代码相比,这样可以更容易跟踪。

编译器禁用在调试模式下优化代码(最简单的优化除外),以便于将源代码映射到机器代码。这也意味着在调试期间会看到任何未使用的代码,如果它实际上是要使用的话,那么你可以调查它没有被调用的原因。

调试选项可以做的另一件事是添加许多检查以确保程序正常运行。比如:

  • 空指针检查
  • 除以零检查
  • 阵列访问检查
  • 内存访问检查
  • 整数溢出检查
  • 检查标准库函数的正确使用
  • 将每个未初始化的变量归零

如果检查失败,程序会通过消息框或其他输出方法提醒您,或者以可预测的方式失败。