我有一个 Linux .Net Core 内存转储,我在 WinDbg 中打开它。它显示以下消息 - 64 位机器不使用 64 位 API
我使用 Windows 11,并且刚刚从最新的 Windows SDK 安装了 WinDbg:
0:000> version
Generic Unix Version 0 UP Free x64
Machine Name:
System Uptime: not available
Process Uptime: not available
Target Composition Target
Microsoft (R) Windows Debugger Version 10.0.22621.1778 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
command line: '"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" ' Debugger Process 0x6E34
dbgeng: image 10.0.22621.1778,
[path: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbgeng.dll]
dbghelp: image 10.0.22621.1778,
[path: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll]
DIA version: 30795
Extension DLL search Path:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\WINXP;C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext;C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext\arcade;C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\pri;C:\Program Files (x86)\Windows Kits\10\Debuggers\x64;C:\Users\p11f70f\AppData\Local\Dbg\EngineExtensions;C:\Program Files (x86)\Windows Kits\10\Debuggers\x64;C:\Program Files\OpenSSH\;C:\Program Files\PowerShell\7;C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;C:\Program Files\Python39\;C:\Program Files\Python39\Scripts\;C:\ProgramData\Boxstarter;C:\Program Files\Eclipse Adoptium\jdk-17.0.1.12-hotspot\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Plantronics\Spokes3G\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\PuTTY\;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\p11f70f\AppData\Local\Microsoft\WindowsApps;c:\dayforce\utils;C:\Users\p11f70f\.dotnet\tools;C:\Users\p11f70f\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\p11f70f\AppData\Local\Programs\Fiddler;C:\Users\p11f70f\.dotnet\tools;C:\Users\p11f70f\AppData\Local\Microsoft\WindowsApps;C:\Users\p11f70f\AppData\Local\Programs\Azure Data Studio\bin;~\.terraform;C:\Users\p11f70f\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\PowerShell\7\;C:\Users\p11f70f\AppData\Local\Microsoft\WindowsApps;c:\dayforce\utils;C:\Users\p11f70f\.dotnet\tools;C:\Users\p11f70f\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\p11f70f\AppData\Local\Programs\Fiddler;C:\Users\p11f70f\.dotnet\tools;C:\Users\p11f70f\AppData\Local\Microsoft\WindowsApps;C:\Users\p11f70f\AppData\Local\Programs\Azure Data Studio\bin;C:\Users\p11f70f\.terraform;c:\utils;C:\Users\p11f70f\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin;C:\Users\p11f70f\AppData\Roaming\nvm;C:\Program Files\nodejs;c:\utils\bind\;
Extension DLL chain:
ELFBinComposition: image 10.0.22621.1778, API 0.0.0,
[path: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext\ELFBinComposition.dll]
dbghelp: image 10.0.22621.1778, API 10.0.6,
[path: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll]
uext: image 10.0.22621.1778, API 1.0.0,
[path: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext\uext.dll]
WinDbg 进程从 C:\Program Files (x86)\Windows Kits\Debuggers\x64
启动编辑1
该行在加载故障转储时从一开始就输出:
Microsoft (R) Windows Debugger Version 10.0.22621.1778 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Temp\dumps\clean_coredump]
64-bit machine not using 64-bit API
...
我尝试在 WinDbg Preview 应用程序中打开相同的核心转储,但它完全失败:
icrosoft (R) Windows Debugger Version 10.0.22549.1000 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Temp\dumps\clean_coredump]
Could not match Dump File signature - invalid file format
Could not open dump file [C:\Temp\dumps\clean_coredump], Win32 error 0n87
"The parameter is incorrect."
当然,WinDbg 预览版不是最新的,但我不知道如何更新它 - Windows 应用商店在我的计算机上被阻止。
编辑2
我能够按照以下步骤安装现代 WinDBG:
但是,即使使用这个版本,我仍然收到相同的消息。这是加载转储后的完整输出:
************* Preparing the environment for Debugger Extensions Gallery repositories **************
ExtensionRepository : Implicit
UseExperimentalFeatureForNugetShare : true
AllowNugetExeUpdate : true
AllowNugetMSCredentialProviderInstall : true
AllowParallelInitializationOfLocalRepositories : true
-- Configuring repositories
----> Repository : LocalInstalled, Enabled: true
----> Repository : UserExtensions, Enabled: true
>>>>>>>>>>>>> Preparing the environment for Debugger Extensions Gallery repositories completed, duration 0.000 seconds
************* Waiting for Debugger Extensions Gallery to Initialize **************
>>>>>>>>>>>>> Waiting for Debugger Extensions Gallery to Initialize completed, duration 0.032 seconds
----> Repository : UserExtensions, Enabled: true, Packages count: 0
----> Repository : LocalInstalled, Enabled: true, Packages count: 36
Microsoft (R) Windows Debugger Version 10.0.25921.1001 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Temp\dumps\clean_coredump]
64-bit machine not using 64-bit API
************* Path validation summary **************
Response Time (ms) Location
Deferred srv*...*http://msdl.microsoft.com/download/symbols
Symbol search path is: srv*...*http://msdl.microsoft.com/download/symbols
Executable search path is:
Generic Unix Version 0 UP Free x64
System Uptime: not available
Process Uptime: not available
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
..........................................
*** WARNING: Unable to verify timestamp for libpthread-2.31.so
*** WARNING: Unable to verify timestamp for libcoreclr.so
libpthread_2_31!pthread_cond_wait+0x1e2:
00007454`1e1637b2 483d00f0ffff cmp rax,0FFFFFFFFFFFFF000h
我也遇到了同样的问题,请问你最后是怎么解决的呢? 当我打开dump时,输出如下:
************* 为调试器扩展库存储库准备环境 ************** 扩展存储库:隐式 UseExperimentalFeatureForNugetShare :true 允许NugetExeUpdate:true 非交互式Nuget:true 允许NugetMSCredentialProviderInstall:true 允许本地存储库并行初始化:true
启用RedirectToV8JsProvider:假
-- 配置存储库 ----> 存储库:LocalInstalled,已启用:true ----> 存储库:UserExtensions,启用:true
已完成调试器扩展库存储库的环境准备,持续时间 0.015 秒
**************** 等待调试器扩展库初始化 **************
等待调试器扩展库初始化完成,持续时间 0.032 秒 ----> 存储库:UserExtensions,启用:true,包计数:0 ----> 存储库:LocalInstalled,已启用:true,包数量:41
Microsoft (R) Windows 调试器版本 10.0.27553.1004 AMD64 版权所有 (c) Microsoft Corporation。保留所有权利。
加载转储文件 [D:\work�40508\prod_recruit-email-receive-5bc8687556-5dc6j_20240508102921 mp ecruit-电子邮件-接收-5bc8687556-5dc6j_20240508102921.dmp] 64 位机器不使用 64 位 API
**************** 路径验证摘要 ************** 响应时间(毫秒) 位置 延迟的 srvhttps://msdl.microsoft.com/download/symbols 符号搜索路径为:srvhttps://msdl.microsoft.com/download/symbols 可执行搜索路径为: 通用 Unix 版本 0 UP 免费 x64 系统正常运行时间:不可用 流程正常运行时间:不可用 ...................................................... ............ ...................................................... ............ ...................................................... ............ ...................................... *** 警告:无法验证 libpthread-2.31.so 的时间戳 *** 警告:无法验证 libcoreclr.so 的时间戳 libpthread_2_31!pthread_cond_wait+0x1e2: 00007f7a`fe9747b2 483d00f0ffff cmp rax,0FFFFFFFFFFFFFF000h