在哪里了解VS调试器的“魔术名称”

在哪里了解VS调试器的“魔术名称”,第1张

在哪里了解VS调试器的“魔术名称

这些是编译器的未记录实现细节,并且随时可能更改。(更新:有关

GeneratedNames.cs

最新详细信息,请参见C#源代码;下面的描述有些过时了。)

但是,由于我是一个好人,因此以下是其中一些详细信息:

如果您有一个未使用的局部变量被优化器删除,则无论如何我们都会将调试信息发送到PDB中。我们将后缀粘贴

__Deleted$
到此类变量上,以便调试器知道它们在源代码中,但未在二进制文件中表示。

由编译器分配的临时变量插槽的名称为CS $ X $ Y,其中X是“临时种类”,Y是到目前为止分配的临时数量。临时类型为:

0 --> short lived temporaries1 --> return value temporaries2 --> temporaries generated for lock statements3 --> temporaries generated for using statements4 --> durable temporaries5 --> the result of get enumerator in a foreach6 --> the array storage in a foreach7 --> the array index storage in a foreach.

8到264之间的临时类型是多维数组的其他数组索引存储。

高于264的临时类型用于涉及固定字符串的固定语句的临时类型。

特殊生成的编译器生成的名称是为:

1 --> the iterator state ("state")2 --> the value of current in an iterator ("current")3 --> a saved parameter in an iterator4 --> a hoisted 'this' in an iterator ("this")5 --> a hoisted local in an iterator6 --> the hoisted locals from an outer scope7 --> a hoisted wrapped value ("wrap")8 --> the closure class instance ("locals")9 --> the cached delegate instance ("CachedAnonymousMethodDelegate")a --> the iterator instance ("iterator")b --> an anonymous methodc --> anonymous method closure class ("DisplayClass")d --> iterator classe --> fixed buffer struct ("FixedBuffer")f --> anonymous type ("AnonymousType")g --> initializer local ("initLocal")h --> query expression temporary ("TransparentIdentifier")i --> anonymous type field ("Field")j --> anonymous type type parameter ("TPar")k --> auto prop field ("BackingField")l --> iterator thread idm --> iterator finally ("Finally")n --> fabricated method ("FabricatedMethod")o --> dynamic container class ("SiteContainer")p --> dynamic call site ("Site")q --> dynamic delegate ("SiteDelegate")r --> com ref call local ("ComRefCallLocal")s --> lock taken local ("LockTaken")

生成魔术名称的模式是:

P<N>C__SI
其中:

  • 对于缓存的委托和显示类实例,P为CS $,否则为空。
  • N是与事物关联的原始名称(如果有)
  • C是上面列出的字符1到s
  • S是描述性后缀(“当前”,“状态”等),因此在读取元数据时不必记住上面的表。
  • 我是一个可选的唯一编号


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4940885.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存