- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 WinDbg 连接到一个正在运行的进程,但该进程崩溃了(我有一个关于这种情况的单独问题)。一旦程序崩溃,WinDbg 就会停止并允许我调试程序。我使用命令“.dump/ma”进行了故障转储以进行进一步调查。
该程序被编译为“任何 CPU”,我使用 WinDbg x64 来进行转储。现在,我再次在同一台计算机上打开 WinDbg x64 并打开故障转储。它是这样说的:
Loading Dump File [C:\crashdump.dmp]
User Mini Dump File with Full Memory: Only application data is available
Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (8 procs) Free x64
Product: WinNt, suite: SingleUserTS
Machine Name:
Debug session time: Mon Aug 15 10:24:57.000 2011 (UTC + 1:00)
System Uptime: 17 days 0:54:39.021
Process Uptime: 12 days 14:01:31.000
................................................................
...............................................................
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(1be0.b78): Access violation - code c0000005 (first/second chance not available)
*** WARNING: symbols timestamp is wrong 0x4dd2333e 0x4da4281c for clr.dll
clr!WKS::gc_heap::find_first_object+0x92:
000007fe`ea129a1d f70100000080 test dword ptr [rcx],80000000h ds:00000000`00003d80=????????
然后我尝试通过“.load sos clr”加载 SOS,但出现错误:
The call to LoadLibrary(sos clr) failed, Win32 error 0n2
"The system cannot find the file specified."
Please check your debugger configuration and/or network access.
尝试使用“.loadby sos clr”,它可以工作。现在我想用“!clrstack”查看堆栈并粘贴在这里:
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of clr.dll is
in the version directory
3) or, if you are debugging a dump file, verify that the file
mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path.
4) you are debugging on the same architecture as the dump file.
For example, an IA64 dump file must be debugged on an IA64
machine.
You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll. .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.
If you are debugging a minidump, you need to make sure that your executable
path is pointing to clr.dll as well.
我尝试了“.symfix”和“.reload”:
0:027> .symfix
0:027> .reload
..................*** WARNING: symbols timestamp is wrong 0x4dd2333e 0x4da4281c for clr.dll
..............................................
...............................................................
卡住了。同时当进程在WinDgb下运行时我可以暂停执行,加载SOS并成功执行“!clrstack”命令。
有什么想法吗?谢谢。
更新 - 按照第二个答案中提供的步骤操作,仍然不起作用。
1) 我的符号路径:SRV*c:\symbols*http://msdl.microsoft.com/download/symbols;srv*
2) 加载的 CLR: 4.0.30319.237:
0:027> lm v clr
Unknown option 'r'
start end module name
00000000`77b60000 00000000`77d09000 ntdll (pdb symbols) c:\symbols\ntdll.pdb\6192BFDB9F04442995FFCB0BE95172E12\ntdll.pdb
Loaded symbol image file: ntdll.dll
Image path: C:\Windows\System32\ntdll.dll
Image name: ntdll.dll
Timestamp: Sat Nov 20 13:11:21 2010 (4CE7C8F9)
CheckSum: 001B55EA
ImageSize: 001A9000
File version: 6.1.7601.17514
Product version: 6.1.7601.17514
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: ntdll.dll
OriginalFilename: ntdll.dll
ProductVersion: 6.1.7601.17514
FileVersion: 6.1.7601.17514 (win7sp1_rtm.101119-1850)
FileDescription: NT Layer DLL
LegalCopyright: © Microsoft Corporation. All rights reserved.
000007fe`e9fb0000 000007fe`ea915000 clr # (pdb symbols) c:\symbols\clr.pdb\1A7EA01DA29549DAB2B0BD012A6C5BA12\clr.pdb
Loaded symbol image file: clr.dll
Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Image name: clr.dll
Timestamp: Tue May 17 09:35:10 2011 (4DD2333E)
CheckSum: 00967144
ImageSize: 00965000
File version: 4.0.30319.237
Product version: 4.0.30319.237
File flags: 8 (Mask 3F) Private
File OS: 4 Unknown Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® .NET Framework
InternalName: clr.dll
OriginalFilename: clr.dll
ProductVersion: 4.0.30319.235
FileVersion: 4.0.30319.235 (RTMGDR.030319-2300)
PrivateBuild: DDBLD240
FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation
LegalCopyright: © Microsoft Corporation. All rights reserved.
Comments: Flavor=Retail
3) “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscordacwks.dll”的版本为 4.0.30319。239
4)我发现当我将转储加载到WinDbg时,它会从网络加载正确的“mscordacwks.dll”,因此在文件夹“C:\symbols\mscordacwks_AMD64_AMD64_4.0.30319.237.dll\4DD2333E965000”中我有文件“mscordacwks_AMD64_AMD64_4.0.30319.237.dll”。
5)
0:027> .cordll -ve -u -l
CLR DLL status: No load attempts
6)
0:027> !sym noisy
noisy mode - symbol prompts on
0:027> .restart
Loading Dump File [C:\crashdump.dmp]
User Mini Dump File with Full Memory: Only application data is available
DBGHELP: Symbol Search Path: srv*;srv*c:\symbols*http://msdl.microsoft.com/download/symbols
DBGHELP: Symbol Search Path: cache*;SRV*http://msdl.microsoft.com/download/symbols;srv*c:\symbols*http://msdl.microsoft.com/download/symbols
DBGHELP: Symbol Search Path: cache*;SRV*http://msdl.microsoft.com/download/symbols;srv*c:\symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: srv*;SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (8 procs) Free x64
Product: WinNt, suite: SingleUserTS
Machine Name:
Debug session time: Mon Aug 15 10:24:57.000 2011 (UTC + 1:00)
System Uptime: 17 days 0:54:39.021
Process Uptime: 12 days 14:01:31.000
................................................................
...............................................................
DBGHELP: ntdll - public symbols
C:\Program Files\Debugging Tools for Windows (x64)\sym\ntdll.pdb\6192BFDB9F04442995FFCB0BE95172E12\ntdll.pdb
DBGHELP: Symbol Search Path: cache*;SRV*http://msdl.microsoft.com/download/symbols;srv*c:\symbols*http://msdl.microsoft.com/download/symbols
DBGHELP: Symbol Search Path: cache*;SRV*http://msdl.microsoft.com/download/symbols;srv*c:\symbols*http://msdl.microsoft.com/download/symbols
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(1be0.b78): Access violation - code c0000005 (first/second chance not available)
*** WARNING: symbols timestamp is wrong 0x4dd2333e 0x4da4281c for clr.dll
DBGHELP: clr - public symbols
C:\Program Files\Debugging Tools for Windows (x64)\sym\clr.pdb\1A7EA01DA29549DAB2B0BD012A6C5BA12\clr.pdb
clr!WKS::gc_heap::find_first_object+0x92:
000007fe`ea129a1d f70100000080 test dword ptr [rcx],80000000h ds:00000000`00003d80=????????
7)
0:027> !clrstack
SYMSRV: C:\Program Files\Debugging Tools for Windows (x64)\sym\mscordacwks_AMD64_AMD64_4.0.30319.237.dll\4DD2333E965000\mscordacwks_AMD64_AMD64_4.0.30319.237.dll not found
SYMSRV: mscordacwks_AMD64_AMD64_4.0.30319.237.dll from http://msdl.microsoft.com/download/symbols: 502892 bytes - copied
DBGHELP: C:\Program Files\Debugging Tools for Windows (x64)\sym\mscordacwks_AMD64_AMD64_4.0.30319.237.dll\4DD2333E965000\mscordacwks_AMD64_AMD64_4.0.30319.237.dll cached to C:\Program Files\Debugging Tools for Windows (x64)\sym\mscordacwks_AMD64_AMD64_4.0.30319.237.dll\4DD233F317b000\mscordacwks_AMD64_AMD64_4.0.30319.237.dll
DBGHELP: C:\Program Files\Debugging Tools for Windows (x64)\sym\mscordacwks_AMD64_AMD64_4.0.30319.237.dll\4DD233F317b000\mscordacwks_AMD64_AMD64_4.0.30319.237.dll - OK
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of clr.dll is
in the version directory
3) or, if you are debugging a dump file, verify that the file
mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path.
4) you are debugging on the same architecture as the dump file.
For example, an IA64 dump file must be debugged on an IA64
machine.
You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll. .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.
If you are debugging a minidump, you need to make sure that your executable
path is pointing to clr.dll as well.
最佳答案
在使用站点的小型转储进行调试时,我经常遇到此问题。我不确定你的情况是如何发生的。通常,当进行转储时加载的 CLR 版本在调试计算机上不可用时,就会发生这种情况。就您而言,它们是同一台机器,因此它们应该都可以正常工作。我确信会有其他人能够准确解释为什么不是这样。
与此同时,以下是我对网站转储所做的操作。 Windbg 正在寻找 mscordacwks.dll 的“正确版本”。所以我们给它那个版本并告诉它去哪里寻找它。
首先 - 如果我通过删除 mscordacwks.dll 来欺骗所有这些,windbg 就会关闭并从 Microsoft 符号服务器加载它,因此请确保您的符号设置正确以从 Microsoft 符号服务器下载符号并提供又来了。
现在 - 假设这不起作用,请准确检查哪个版本是“正确的版本”。使用“lm v clr”列出模块信息,并检查实际加载的 CLR 版本。我的是4.0.30319.239。好的 - 现在找到该版本的 mscordacwks.dll。假设它可以在计算机上正常安装的 .NET Framework 中找到(C:\Windows\Microsoft.NET\Framework64\v4.0.30319)。请检查版本是否完全匹配(右键单击、属性等)!拿起它并将其放在安全的地方(我使用 D:\Symbols\_Images)。按照 Windbg 为您提供的重命名文件的说明进行操作。 mscordacwks_.dll 将是 mscordacwks_AMD64_AMD64_4.0.30319.239.dll。
现在设置可执行图像路径(“.exepath D:\Symbols\_Images”),以便 Windbg 知道您将其放在何处。
您现在已经获得了“正确版本的 mscordacwks”,并将其重命名,以便 Windbg 知道它在寻找什么,并告诉它您将其放在哪里。
如果仍然不起作用,请尝试“.cordll -ve -u -l”和“!sym嘈杂”以打开cordll负载和符号服务器的详细日志记录,然后再次尝试!CLRStack 。也许这两个命令的输出会准确地告诉您它正在尝试加载什么,并且您可以弄清楚为什么它不会这样做...
关于debugging - WinDbg x64 : Cannot debug a crash dump - failed to load data access DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7093494/
我正在研究 MySQL 用户定义函数 (UDF),它基本上是 Windows 系统函数的包装器。我的问题是 UDF 对于某些输入按预期工作,但会导致 mysqld 对于其他输入崩溃。 UDF 本身采用
我在 this 中搜索过官方文档查找python中 json.dump() 和 json.dumps() 之间的区别。很明显,它们与文件写入选项有关。 但是它们之间的详细区别是什么?在什么情况下一个比
以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些。如果还有不好的地方,欢迎指出。 首先说明基本功能: dumps是将dict转
有没有办法在运行 'erl' 时禁用“崩溃转储”和“核心转储”文件的生成? PS:我知道 erl 的“+d”选项,但我想完全禁用崩溃/核心转储的生成。 最佳答案 您还可以将 ERL_CRASH_DUM
这是一个错误吗? >>> import json >>> import cPickle >>> json.dumps(cPickle.dumps(u'å')) Traceback (most rece
我已经开始了解用于对象序列化和反序列化的pickle模块了。 我知道pickle.dump是用来将代码存储为字节流(序列化),而pickle.load本质上是相反的,转成流字节返回到 python 对
我有一个这种格式的字符串, d = {'details': {'hawk_branch': {'tandem': ['4210bnd72']}, 'uclif_branch': {'tandem':
下面是我的python代码 r = requests.get("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults
我正在使用 PigLatin,使用 grunt,每次我“转储”东西时,我的控制台都会被诸如此类、诸如此类的非信息所破坏,有没有办法抑制这一切? grunt> A = LOAD 'testingData
我正在尝试将 mongodump 编辑的一组 .bson 文件 mongorestore 到位于 docker 中的 mongo 数据库,在我只有 SSH 访问权限的 Ubuntu 实例上。 我有一个
我正在尝试使用语音发送文本 watson api,但是当我设置 interim_results = True 时,我收到了值错误。请帮助我:) with open(join(dirname(__fil
鉴于 dump.rdb(或 .json 格式)文件中现有 redis 数据库的快照,我想在我自己的机器上恢复此数据以在其上运行一些测试。 任何有关如何执行此操作的指示都将不胜感激。 我尝试解析 dum
我对 Laravel 4 和 Composer 还是很陌生。当我做 Laravel 4 教程时,我无法理解这两个命令之间的区别; php artisan dump-autoload 和 compose
之间有区别吗 object = {1:"one", 2:"two", 3:"three"} file.write(json.dumps(object)) 和 json.dump(object) .如果
导出/导入整个模式的旧方法: exp user/pwdp@server FILE=export.dmp OWNER=user ROWS=Y imp newuser/pwd@server FULL=
我有一堆需要恢复的 mongo 数据库。我使用 mongodump 获取备份目录,其中包括其中的集合。像这样: |- mydir |-- db1 |--- collection1 |--- colle
尽管我在 root 下运行 dotnet-dump,并且进程在 root 下运行(请参阅下面的服务描述),但似乎我缺乏一些权限。 我还尝试了 home、var 和 tmp 中的其他目录:所有相同的消息
我正在尝试生成 LLVM IR 代码,作为 Kaleidoscope tutorial 的一部分我已成功完成在同一台机器上,使用这些相同的编译器标志。 我的代码在 clang++ 3.4 中编译没有错
我正在使用 eclipse 开发 Web 应用程序,当我尝试从 eclipse 中在服务器上运行我的应用程序时遇到了问题。 # # A fatal error has been detected by
给定一个任意的 picklable Python 数据结构data,是 with open('a', 'bw') as f: f.write(pickle.dumps(data)) 相当于 w
我是一名优秀的程序员,十分优秀!