首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么C#发行版构建包含调试信息?

为什么C#发行版构建包含调试信息?
EN

Stack Overflow用户
提问于 2018-10-25 14:10:29
回答 1查看 617关注 0票数 2

在分解我的C#程序(release )时,我注意到它包含了函数的名称和我在项目中使用的变量(我相信这是调试信息,如果我错了,请纠正我)。

有谁能解释一下为什么会有吗?如果有必要的话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 14:32:27

在托管代码中,有三个级别的“调试信息”。

  1. 包含元数据:这包括所有公开的名称空间、名称和类型(不包括局部变量名称)。它被捆绑在程序集中,并允许该代码的使用者知道如何引用代码并引用它。在C/C++ land中,这个级别的元数据在H文件中被移动。在COM领域,您可以获得类型库。所有的程序集都是这样的--没有它,它们就不能被消耗。
  2. 符号文件(又名PDB文件)。这是关于内部名称、行号等的扩展信息。调试器使用这些信息以使调试工作更好。您可以为“调试构建”或“发布构建”(或其他类型的构建)创建PDB文件。这由“高级生成设置”对话框上的设置控制,该对话框可从项目属性的“生成”选项卡中访问。默认情况下,只将版本设置为PDB,而调试构建则设置为Full (我认为这可能会将更多信息直接放在程序集中)。PDB文件在托管代码中的重要性不如C/C++中的重要。在那里,如果没有匹配的PDB文件,调试几乎是不可能的。
  3. 定义调试常量:(设置在项目属性的Build选项卡上)。此#定义的常量用作包含(或不包括)只包含调试代码的开关。无论是否定义了这个常量,代码的工作方式都可能有细微的不同。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52991408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档