#4121·ILSpy

州立MachineHoisted 本地Scopes行不与升档对齐

作者: siegfriedpammer创建于 2026年9月8日更新于 2026年9月8日
标签BugPDBGen

页:1

State MachineHoisted LocalScopes'按槽号编制索引:调试器从一个州机器字段名中取出N' (<取名:>取名:>取名:>取名:>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名:<>取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取名: b取出为取名:"取名". 便携式PdbWriter.Build State MachineHoisted LocalScopes' (330行) 转而每幸存的ILVariable'发出一行 " State Machine Field " ,该 " State Machine Field " 系由外地代号订购,并给予每一行`(0,CodeSize)'的范围。 该序列与槽数无关,因此行位错位,在短于最高档位的地方,行数上方被表示评价者所放弃.

  • 复制

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 公用静态同步任务< int> MixedAsync( IEnumable< int> source) { 列表块 = 新列表 () ; 每个( 来源值) 块. 添加( 数值); 等待任务 。 仪表( ); 总数=0; 尝试 { 每个( 块块块) { 总块; 等待任务 。 仪表( ); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 捕获(无效操作例外e) { 控制台. WriteLine( e. Message) ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 返回总数; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


国产机器领域 QQMixedAsync > d 0 ' (第1-7行):

\ 1 状态,\ t 建构器, 来源, < chunks> 5 1, < total> 5 2,\ s 3, < 值> 5 4, ++s 5, < chunk> 5 6, 5 7, ++u 1


QQMixedAsync > d 0 的 Blob行。 移动下一步, “ 启动+长度 ” :

编译器:0+24e,0+24e,0+0,3c+25,0+0,124+8c,1e8+1f ILSpy:0+24e,0+24e,0+24e,0+24e,0+24e,0+24e,0+24e,0+24e


编译器按位置顺序,每个插槽发出一行,并带有一个空的"0+0"占位符,用于合成的QQs N"插槽和每个本地用户的真实活区. ILSpy的行恰好是这里的第7个行,但他们列举了一个不同的集(上面所标注的参数'source',QQs N'槽没有),因此"N-1"行没有描述"N"槽.

计数在真实代码上存在差异: 对照二进制中最高的用户可见槽来检查 PDB ILSpy 生成 Newtonsoft 的 227 个状态机器出现缺口 。 微软的Json 13.0.4和2. 扩展. Http 10.0.11 (英语). 不足意味着空档超过行数的被升起的本地人完全从本地人窗口消失.

页:1

#1230将"国家机器之家"(State MachineHoisted LocalScopes)列为未执行. 它的发射方式( " 便携式PdbWriter.cs " 第186至192行),只是不像消费者读取的那样。

 由AI代理(Claude)代表齐格弗里德出品.

内容来源: icsharpcode/ILSpy