c#Windbg中的System.Runtime.InteropServices.COMException错误

时间:2018-06-18 15:02:54

标签: c# com windbg

我是C#的新手。

我正在编写一个使用来自第三方的com对象的软件。

在visual studio中运行正常,当我尝试另一台机器(我将所有源文件复制到其中)时,应用程序在启动时崩溃并出现“问题事件名称:CLR20r3”。

搜索后我发现了windbg,我试图调试并得出以下结果;

最后你可以看到,System.Runtime.InteropServices.COMException。 我搜索了错误代码,但无法得出任何结果。 任何人都可以帮我解决问题所在或指导我如何使用windbg进入这个问题的细节?

ModLoad: 76d70000 76df3000   C:\Windows\system32\CLBCatQ.DLL
    ModLoad: 76c10000 76c9f000   C:\Windows\system32\OLEAUT32.dll
    (724.638): C++ EH exception - code e06d7363 (first chance)
    (724.638): CLR exception - code e0434352 (first chance)
    ModLoad: 74b30000 74b39000   C:\Windows\system32\VERSION.dll
    ModLoad: 5e180000 5e22a000   C:\Windows\Microsoft.NET\Framework\v4.0.30319\diasymreader.dll
    (724.638): CLR exception - code e0434352 (!!! second chance !!!)
    eax=0017ee5c ebx=00000005 ecx=00000005 edx=00000000 esi=0017ef08 edi=00317b00
    eip=758eb760 esp=0017ee5c ebp=0017eeac iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    KERNELBASE!RaiseException+0x58:
    758eb760 c9              leave
    0:000> .loadby sos clr
    0:000> !CLRStack
    OS Thread Id: 0x638 (0)
    Child SP IP       Call Site
    0017efd0 758eb760 [HelperMethodFrame: 0017efd0] 
    0017f020 002d00fc checkAtmModules.Form1..ctor()*** WARNING: Unable to verify checksum for checkAtmModules.exe
     [C:\Users\SD\Documents\Visual Studio 2010\Projects\checkAtmModules\checkAtmModules\Form1.cs @ 20]
    0017f030 002d00a6 checkAtmModules.Program.Main() [C:\Users\SD\Documents\Visual Studio 2010\Projects\checkAtmModules\checkAtmModules\Program.cs @ 18]
    0017f268 5d3e21db [GCFrame: 0017f268] 
    0:000> !threads
    ThreadCount:      2
    UnstartedThread:  0
    BackgroundThread: 1
    PendingThread:    0
    DeadThread:       0
    Hosted Runtime:   no
                                       PreEmptive   GC Alloc                Lock
           ID  OSID ThreadOBJ    State GC           Context       Domain   Count APT Exception
       0    1   638 00317b00      6020 Enabled  01eb7ef0:01eb7fe8 003112a0     0 STA System.Runtime.InteropServices.COMException (01e9d454)
       2    2  13d4 00351750      b220 Enabled  00000000:00000000 003112a0     0 MTA (Finalizer)

1 个答案:

答案 0 :(得分:0)

在深入研究WinDBG之前,请尝试使用DebugDiag(http://debugdiag.com)创建崩溃报告,它将以更友好的形式为您提供转储中的信息。 在WinDBG中,您可以尝试!PrintException获取有关托管异常的更多信息,或者尝试kb命令查看非托管堆栈。在WinDbg的MEX调试扩展中,您可以找到!ClrStack2命令。在SOSEX扩展中,有一个!mk命令可显示托管和非托管堆栈帧。

但是很可能您的(3-d参与者)COM安装不正确。我会使用Fuslogvw.exe和/或procmon.exe来监视应用程序在异常发生之前的操作,或者只是使用适当的安装程序将COM安装到新计算机上。