Exception.StackTrace如何知道源代码中的行?

时间:2016-04-10 21:07:14

标签: c# .net visual-studio

这让我很困惑。

我的理解是,当我 编译 应用程序时,它将成为我的操作系统读取的优化代码。我的源代码中的内容(如变量名,行号等)不再具有意义。

那么我怎样才能构建和运行像

这样的代码
Second

并获取有关我的源代码的哪个部分可以解除异常的所有详细信息。

现在,我知道在.NET中,我的C#代码并不会成为低级"操作系统代码"而是微软中介语言。我猜测MIL为了生成这个异常信息,我在源代码和编译代码之间存在某种类型的映射。这似乎是一个巨大的浪费,不是吗?所以"编译"在.NET中,并不是真正将源代码翻译成机器代码;除了 源代码之外,它还会创建机器代码 。这意味着我的Windows机器上的所有应用程序都有与其源代码相关的元数据。

或者我对这一切完全错了吗?

0 个答案:

没有答案