【问题标题】:ildasm.exe disassembly code viewer failed to exit unexpectedly with error code BEX64ildasm.exe 反汇编代码查看器无法意外退出,错误代码为 BEX64
【发布时间】:2022-01-16 05:18:00
【问题描述】:

目前我是一名程序员,每天使用 C# 语言开发我的应用程序。我写了我的应用程序,今天我决定反汇编我的应用程序,看看实际的汇编代码是什么样子的。

我查看了 Microsoft 文档并了解到我有一个工具可以执行此操作,即“ildasm.exe”,它是在我安装 Visual Studio 时预装的,用于将汇编代码作为中心代码查看。 IL 时间(我知道 C# 不同于 C++ 和 C 或 Pascal)

我使用了 Visual Studio 的命令行工具,它的名字是:“x64 Native Tools Command Prompt for VS 2019”,然后以管理员身份运行它。

然后在新打开的窗口中输入 ildasm,它会显示一个图形窗口。我选择我的应用程序打开它,但是当我单击任何方法查看其汇编代码时,ildasm 程序立即退出。

我再次尝试转储一个“.il”文件,以便我可以在记事本中查看它们,但即便如此,ildasm 也只是向我显示了一个进度窗口,然后立即退出。

还会生成一个“.il”文件,但是当我查看它时,它只写入到程序集部分(这决定了当您右键单击应用程序 > 属性并选择详细信息选项卡时会看到什么)

我尝试了命令输入:

ildasm "E:\Projects_MSVS\AESEncryptDecyptFile\AESEncryptDecyptFile\bin\Debug\AESEncryptDecryptFile.exe" /out="E:\Projects_MSVS\AESEncryptDecyptFile\AESEncryptDecyptFile\bin\Debug\AESEncryptDecryptFile.exe.il"

而且和上次没什么区别,ildasm马上就退出了

它的共同点是没有消息显示报告此错误,它只是停止应用程序并退出。

我真的不相信这有什么异常,所以我使用了诊断数据查看器工具进行了调查。在问题报告选项卡中搜索了一段时间后,我终于找到了它。它抛出了七个停止工作时间,这与我尝试渲染程序的七次相对应。在第七份报告中(第一次尝试的意思),停止工作这个词的右侧,不再是一个勾号图标(✓)而是一个待定图标(看起来像这样:⟳),当我点击提取报告文件它只是打开 Windows 资源管理器窗口,它是一个空文件夹(此文件夹是空的),我还启用了显示所有隐藏文件的选项,包括系统文件。

为了便于调查,我发布了所有七个我使用诊断数据查看器工具的错误消息

这是我使用诊断数据查看器工具进行调查时得到的结果,我的每次尝试都将被标记为(第 N 次尝试),并且每次尝试的错误报告都是分开的:

(第一次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:16:48 PM 
Problem: Stopped working 
Status: Report queued 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: (18446744073709551615) 

Files that help describe the problem 

minidump.mdmp 
WERInternalMetadata.xml 
WERInternalRequest.xml 
memory.csv 
sysinfo.txt 
AppCompat.txt 
memory.hdmp 
WERDataCollectionStatus.txt

(第二次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:17:49 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第三次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:19:22 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第四次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:20:14 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第五次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:21:33 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第六次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:26:34 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 
Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

(第七次尝试,也是我最后一次尝试):

Microsoft .NET Framework IL disassembler 

description 

Faulting Application Path: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe 
Creation Time: 12/12/2021 4:26:59 PM 
Problem: Stopped working 
Status: Report sent 

Problem signature 

Problem Event Name: BEX64 
Application Name: ildasm.exe 
Application Version: 4.8.4084.0 
Application Timestamp: 5dda4186 
Fault Module Name: ildasm.exe 
Fault Module Version: 4.8.4084.0 
Fault Module Timestamp: 5dda4186 
Exception Offset: 00000000000055ae7 
Exception Code: c0000409 
Exception Data: 0000000000000005 

Extra information about the problem 

Bucket ID: 8f47f513232a51a281bc646c0cbb3750 (1278006809499219792)

这是我的电脑配置(从预装在 Windows 上的系统信息工具中提取):

OS Name Microsoft Windows 11 Home Single Language 
Version 10.0.22000 Build 22000 
Other OS Description    Not Available 
OS Manufacturer Microsoft Corporation 
System Name CYBERDAY 
System Manufacturer ASUSTeK COMPUTER INC. 
System Model    VivoBook_ASUSLaptop X409FA_X409FA 
System Type x64-based PC 
System SKU   
Processor   Intel(R) Core(TM) i3-8145U CPU @ 2.10GHz, 2304 Mhz, 2 Core(s), 4 Logical Processor(s) 
BIOS Version/Date   American Megatrends Inc. X409FA.305, 1/28/2021 
SMBIOS Version  3.2 
Embedded Controller Version 255.255 
BIOS Mode   UEFI 
BaseBoard Manufacturer  ASUSTeK COMPUTER INC. 
BaseBoard Product   X409FA 
BaseBoard Version   1.0 
Platform Role   Mobile 
Secure Boot State   On 
PCR7 Configuration  Elevation Required to View 
Windows Directory   C:\Windows 
System Directory    C:\Windows\system32 
Boot Device \Device\HarddiskVolume1 
Locale  United States 
Hardware Abstraction Layer  Version = "10.0.22000.1" 
Time Zone   SE Asia Standard Time 
Installed Physical Memory (RAM) 4.00 GB 
Total Physical Memory   3.86 GB 
Available Physical Memory   306 MB 
Total Virtual Memory    11.4 GB 
Available Virtual Memory    4.55 GB 
Page File Space 7.50 GB 
Page File   C:\pagefile.sys 
Kernel DMA Protection   Off 
Virtualization-based security   Running 
Virtualization-based security Required Security Properties   
Virtualization-based security Available Security Properties Base Virtualization Support, Secure Boot, DMA Protection, Mode Based Execution Control 
Virtualization-based security Services Configured    
Virtualization-based security Services Running   
Device Encryption Support   Elevation Required to View 
A hypervisor has been detected. Features required for Hyper-V will not be displayed.

我参加了 Windows 预览体验计划,我加入的获取新更新的频道是 Beta 频道。我安装的.NET Framework版本是4.8版

非常感谢任何帮助。

【问题讨论】:

  • 尝试重新安装 .NET Framework SDK。下次,我建议您节省一些精力来写这个问题,坦率地说,这个问题很长,读起来就像一本小说,说明问题的核心是什么。请阅读How to Ask
  • 错误代码0xC0000409STATUS_STACK_BUFFER_OVERRUN。您可能遇到了导致反编译器在其实现中运行错误的模块。显然,您有一个异常状态的小型转储,您可以将其加载到调试器中以分析问题的根本原因。
  • @OndrejTucny 我已经删除并重新安装了 SDK 和运行时,但不幸的是它仍然给我错误。你还有什么办法吗?

标签: c# windows ildasm


【解决方案1】:

我终于找到了问题所在。我打开了将资源嵌入到可执行文件中,显然可执行文件变得太重而无法看到 MSIL 中间运行时代码(真的很重),我关闭了将资源嵌入到可执行文件中,然后编译它,ildasm 工作了。

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2019-05-24
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多