1

我正在尝试跟踪导致我的应用程序从生产启动时崩溃的原因。在 Visual Studio 中从调试启动时,此 C#/.NET Windows 应用程序启动时没有任何问题,并且结果与预期一致。同一应用程序的早期版本也已部署并在其他客户端计算机上运行。从Windows Error Reporting and CLR integration
中找到的解释阅读,看来我的问题来自程序集 ExcelInterop 中的一种方法。

错误桶,类型 0      
活动名称:CLR20r3
答案:不可用
驾驶室编号:0

问题签名:
P1 : afiv2.exe ' 我的应用程序
P2:0.19.4826.21736
P3 : 51489aa0
P4 : ExcelInterop ' 我的图书馆
P5:1.0.0.0
P6 : 514878d9
P7 : 13 ' 方法描述 ???
P8 : 56
P9:PSZQOADHX1U5ZAHBHOHGHLDGIY4QIXHX
P10:

试图找到错误我使用 windbg.exe 菜单启动应用程序 - >文件 - >打开可执行文件(我第一次使用 windbg),但控制台显示符号搜索路径无效。根据Debugging .net using SOS,我使用以下命令序列恢复了符号路径:

!sym 嘈杂    
.symfix
.reload -f

首次尝试加载SOS导致出现“Unable to find module mscorwks”错误,Help:Failed to load sos in windbg解决了这部分问题:

sxe ld:mscorlib
G
.loadby sos mscorwks
!token2ee ExcelInterop 06000013

我预计最后一个命令将确定与事件报告中的数字关联的 methodDesc,但没有返回任何内容。

我现在感觉自己被困在了一个迷宫里。还应该做些什么来找出导致启动时崩溃的原因?


windbg 会话的详细信息

<pre>
Microsoft (R) Windows Debugger Version 6.11.0001.404 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: C:\Users\spel\AppData\Local\Apps\2.0\49619QZC.EY2\B8TZ2OKL.D49\afiv..tion_0000000000000000_0000.0016_22cd035f134c19e0\AFIv2.exe
Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path.           *
* Use .symfix to have the debugger choose a symbol path.                   *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is: 
ModLoad: 00000000`00290000 00000000`0048e000   AFIv2.exe
ModLoad: 00000000`76f00000 00000000`770a9000   ntdll.dll
ModLoad: 000007fe`f89e0000 000007fe`f8a4f000   C:\Windows\SYSTEM32\MSCOREE.DLL
ModLoad: 00000000`76820000 00000000`7693f000   C:\Windows\system32\KERNEL32.dll
ModLoad: 000007fe`fd450000 000007fe`fd4bb000   C:\Windows\system32\KERNELBASE.dll
(121c.1494): Break instruction exception - code 80000003 (first chance)
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
ntdll!CsrSetPriorityClass+0x40:
00000000`76facb60 cc              int     3
0:000> .path
           ^ Syntax error in '.path'
0:000> .winpath
              ^ Syntax error in '.winpath'
0:000> .sympath
Symbol search path is: <empty>
Expanded Symbol search path is: <empty>
0:000> !sym noisy
noisy mode - symbol prompts on
0:000> .symfix
DBGHELP: Symbol Search Path: cache*C:\ProgramData\dbg\sym;SRV*http://msdl.microsoft.com/download/symbols
0:000> .reload -f
Reloading current modules
.
SYMSRV:  C:\ProgramData\dbg\sym\AFIv2.pdb\7C97CCD8E9CD4E26B6039C225A56890B15\AFIv2.pdb not found
SYMSRV:  C:\ProgramData\dbg\sym\AFIv2.pdb\7C97CCD8E9CD4E26B6039C225A56890B15\AFIv2.pdb not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/AFIv2.pdb/7C97CCD8E9CD4E26B6039C225A56890B15/AFIv2.pdb not found
DBGHELP: C:\Users\spel\AppData\Local\Apps\2.0\49619QZC.EY2\B8TZ2OKL.D49\afiv..tion_0000000000000000_0000.0016_22cd035f134c19e0\AFIv2.pdb - file not found
DBGHELP: C:\Users\spel\Documents\GCRH complet\trunk\AFI_CS\IHM\obj\Debug\AFIv2.pdb cached to C:\ProgramData\dbg\sym\AFIv2.pdb\7C97CCD8E9CD4E26B6039C225A56890B15\AFIv2.pdb
*** WARNING: Unable to verify checksum for AFIv2.exe
DBGHELP: AFIv2 - private symbols & lines 
         C:\ProgramData\dbg\sym\AFIv2.pdb\7C97CCD8E9CD4E26B6039C225A56890B15\AFIv2.pdb
.
SYMSRV:  C:\ProgramData\dbg\sym\kernel32.pdb\C4312728BA1F4691955E99B2E026FAFC2\kernel32.pdb not found
SYMSRV:  kernel32.pdb from http://msdl.microsoft.com/download/symbols: 668117 bytes - copied         
DBGHELP: C:\ProgramData\dbg\sym\kernel32.pdb\C4312728BA1F4691955E99B2E026FAFC2\kernel32.pdb already cached
DBGHELP: KERNEL32 - public symbols  
         C:\ProgramData\dbg\sym\kernel32.pdb\C4312728BA1F4691955E99B2E026FAFC2\kernel32.pdb
.
DBGHELP: ntdll - public symbols  
         C:\ProgramData\dbg\sym\ntdll.pdb\15EB43E23B12409C84E3CC7635BAF5A32\ntdll.pdb
.
SYMSRV:  C:\ProgramData\dbg\sym\mscoree.pdb\FB53EF9DD104439E9903F0B34128E0392\mscoree.pdb not found
SYMSRV:  mscoree.pdb from http://msdl.microsoft.com/download/symbols: 294166 bytes - copied         
DBGHELP: C:\ProgramData\dbg\sym\mscoree.pdb\FB53EF9DD104439E9903F0B34128E0392\mscoree.pdb already cached
DBGHELP: MSCOREE - public symbols  
         C:\ProgramData\dbg\sym\mscoree.pdb\FB53EF9DD104439E9903F0B34128E0392\mscoree.pdb
.
SYMSRV:  C:\ProgramData\dbg\sym\kernelbase.pdb\91C72371DD43448192B7B46F5ED10AA02\kernelbase.pdb not found
SYMSRV:  kernelbase.pdb from http://msdl.microsoft.com/download/symbols: 231949 bytes - copied         
DBGHELP: C:\ProgramData\dbg\sym\kernelbase.pdb\91C72371DD43448192B7B46F5ED10AA02\kernelbase.pdb already cached
DBGHELP: KERNELBASE - public symbols  
         C:\ProgramData\dbg\sym\kernelbase.pdb\91C72371DD43448192B7B46F5ED10AA02\kernelbase.pdb

0:000> .loadby sos mscorwks
Unable to find module 'mscorwks'
0:000> sxe ld:mscorlib
0:000> g
ModLoad: 000007fe`f35e0000 000007fe`f44bc000   C:\Windows\assembly\NativeImages_v2.0.50727_64\mscorlib\51a23687fdafc32b697f5a719e364651\mscorlib.ni.dll
ntdll!ZwMapViewOfSection+0xa:
00000000`76f5159a c3              ret
0:000> .loadby sos mscorwks
0:000> !token2ee afi 06000013
SYMSRV:  C:\ProgramData\dbg\sym\mscorwks.pdb\E5BD5716E1D64C1C86661A5AAF7DD9251\mscorwks.pdb not found
SYMSRV:  mscorwks.pdb from http://msdl.microsoft.com/download/symbols: 2000973 bytes - copied         
DBGHELP: C:\ProgramData\dbg\sym\mscorwks.pdb\E5BD5716E1D64C1C86661A5AAF7DD9251\mscorwks.pdb already cached
DBGHELP: mscorwks - public symbols  
         C:\ProgramData\dbg\sym\mscorwks.pdb\E5BD5716E1D64C1C86661A5AAF7DD9251\mscorwks.pdb
0:000> !token2ee ExcelInterop 06000013
</pre>
4

1 回答 1

1

您可以改为设置sxe clrwhich 将在第一次出现异常时中断。然后做一个!clrstack会给调用堆栈。

Methoddsec 06000013 可能会根据 JIT 有所不同,因此您可能正在查看不会给您结果的指针。

高温高压

于 2013-03-20T15:29:57.243 回答