由于 mscordbi.dll 版本错误,托管调试不再起作用 [英] Managed debugging does not work anymore, due to wrong version of mscordbi.dll

查看:41
本文介绍了由于 mscordbi.dll 版本错误,托管调试不再起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Visual Studio 调试内存转储,作为托管,但失败并显示以下错误消息:

<块引用>

托管调试不适用于此小型转储.

<块引用>

无法找到托管小型转储调试所需的库mscordbi.dll",版本4.0.30319.0".

<块引用>

在尝试以下多个步骤之一后重新启动调试会话:

  1. 如果这台计算机当前未连接到互联网,请进行连接,以便可以从 Microsoft 下载 dll.
  2. 在调试器选项下的符号设置中指定mscordbi.dll"的路径.
  3. 选择仅使用本机调试".

在检查我的符号设置时,有以下符号文件 (.pdb) 位置(全部选中):

环境变量:_NT_SYMBOL_PATH微软符号服务器C:\Dump_Repository\...(与此问题无关)

预知缓存目录,自动加载首选项设置为加载所有模块,除非排除.唯一排除的是user32.dll.

_NT_SYMBOL_PATH 环境变量的值如下:

cache*;srv*C:\Dump_Analyse*C:\build_machine1;cache*;srv*C:\Dump_Analyse*\\build_machine2\Development\Symbols;cache*;srv*C:\Dump_Analyse*\\build_machine1\Symbols;cache*;srv*https://msdl.microsoft.com/download/symbols;cache*;srv*C:\ProgramData\dbg\sym

在提到的目录C:\Dump_Analyse中,有一个目录mscordbi.dll,包含三个子目录,每个子目录都包含提到的mscordbi.dll代码> DLL:

Prompt>find ./-name "mscordbi.dll";2>/dev/null./Dump_Analyse/mscordbi.dll(这是一个目录)./Dump_Analyse/mscordbi.dll/4BA1DA2Deb000/mscordbi.dll./Dump_Analyse/mscordbi.dll/563C0E8E10b000/mscordbi.dll./Dump_Analyse/mscordbi.dll/583E5AAD10b000/mscordbi.dll

最后两个似乎不太相关,但第一个的文件版本为 4.0.30319.1(与请求的版本非常接近).

我的电脑已连接到互联网,我的帐户似乎没问题(我最近修改了我的 Windows 帐户的密码,但我在另一个帐户下登录了 Visual Studio).

有人知道这里可能发生什么以及我如何解决这个问题吗?

解决方案

问题已解决:
在进一步尝试的同时,我想清除符号缓存,但它不起作用(据说用户权限不正确).

那个缓存符号是一个目录,包含一个波浪号:~(类似于C:\Users\Dominique~1\AppData\Local\Temp\SymbolCache).

我已将其替换为实际目录名称(通过单击Browse 按钮):

C:\Users\DominiqueDS\AppData\Local\Temp\SymbolCache

换句话说(用于搜索目的):在 Visual Studio 符号设置中,符号缓存目录不应包含 ~(波浪号)字符.

I'm trying to debug a memory dump, using Visual Studio, as managed, but this fails with following error message:

Managed debugging is not available for this minidump.

A required library for managed minidump debugging,'mscordbi.dll', version '4.0.30319.0', could not be located.

Restart your debug session after trying one of more of the following steps:

  1. If this computer is not currently connected to the internet, connect so the dll can be downloaded from Microsoft.
  2. Specify the path to 'mscordbi.dll' in Symbol Settings under Debugger options.
  3. Select 'Debug with Native Only'.

While checking my Symbol Settings, there are following Symbol file (.pdb) locations (all are checked):

Environment Variable: _NT_SYMBOL_PATH
Microsoft Symbol Servers
C:\Dump_Repository\... (not relevant for this question)

A cache directory is foreseen, and the automatic loading preference is set to Load all modules, unless excluded. The only excluded one is user32.dll.

The value of the _NT_SYMBOL_PATH environment variable is the following:

cache*;srv*C:\Dump_Analyse*C:\build_machine1;cache*;srv*C:\Dump_Analyse*\\build_machine2\Development\Symbols;cache*;srv*C:\Dump_Analyse*\\build_machine1\Symbols;cache*;srv*https://msdl.microsoft.com/download/symbols;cache*;srv*C:\ProgramData\dbg\sym

In the mentioned directory C:\Dump_Analyse, there is a directory mscordbi.dll, with three subdirectories, each containing the mentioned mscordbi.dll DLL:

Prompt>find ./ -name "mscordbi.dll" 2>/dev/null
  ./Dump_Analyse/mscordbi.dll (this is a directory)
  ./Dump_Analyse/mscordbi.dll/4BA1DA2Deb000/mscordbi.dll
  ./Dump_Analyse/mscordbi.dll/563C0E8E10b000/mscordbi.dll
  ./Dump_Analyse/mscordbi.dll/583E5AAD10b000/mscordbi.dll

The two last ones seem not that relevant, but the first one has file version 4.0.30319.1 (which is very near to the requested version).

My computer is connected to the internet, my account seems to be ok (I have recently modified the password of my Windows account, but I'm logged in on Visual Studio under another account).

Does anybody know what might be happening here and how I can solve this issue?

解决方案

The problem is solved:
While trying further, I wanted to clear the symbol cache, which did not work (a user permission was said not to be correct).

That cache symbols was a directory, containing a tilde character: ~ (something like C:\Users\Dominique~1\AppData\Local\Temp\SymbolCache).

I've replaced this by the real directory name (by clicking the Browse button):

C:\Users\DominiqueDS\AppData\Local\Temp\SymbolCache

In other words (for searching purposes): in Visual Studio Symbol settings, the symbols cache directory should not contain a ~ (tilde) character.

这篇关于由于 mscordbi.dll 版本错误,托管调试不再起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆