2016-09-23 36 views
0

我正在使用Visual Studio 2013编写C++ DLL,然后EXCEL意味着通过VBA加载DLL。在Visual Studio Project Property -> Configuration Properties -> Debugging -> Command = C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE设置完成后,我开始调试,然后一个对话框出来:'Excel.exe'的调试信息无法找到或不匹配

为“EXCEL.EXE”调试信息不​​能被发现或不 matach。找不到或打开PDB文件。你想继续 调试吗?

后,我单击是,我注意到VS正试图下载的文件pdb了很多,失败:

'EXCEL.EXE' 的(Win32):已加载“C:\ Program Files文件(86 )\ Microsoft Office \ Office14 \ EXCEL.EXE'。找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded'C:\ Windows \ SysWOW64 \ ntdll.dll'。 找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded 'C:\ Windows \ SysWOW64 \ kernel32.dll'。找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded'C:\ Windows \ SysWOW64 \ KernelBase.dll'。 找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded 'C:\ Windows \ SysWOW64 \ advapi32.dll'。找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded'C:\ Windows \ SysWOW64 \ msvcrt.dll'。 找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded 'C:\ Windows \ SysWOW64 \ sechost.dll'。找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded'C:\ Windows \ SysWOW64 \ rpcrt4.dll'。 找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded 'C:\ Windows \ SysWOW64 \ sspicli.dll'。找不到或打开PDB文件。

'EXCEL.EXE'(Win32):Loaded'C:\ Windows \ SysWOW64 \ cryptbase.dll'。 找不到或打开PDB文件。

等等,虽然最后调试好了。

这样的VS行为可以吗?我觉得这有点奇怪,为了调试我的DLL,需要下载EXCEL.EXE和NTDLL.DLL的PDB文件。

看来这里有一个类似的帖子:How can I debug this error: 'Debugging information for iisexpress.exe cannot be found or does not match'?。但那是一个MVC项目(我的是C++)和Visual Studio设置是不同的。

+1

如何指定调试符号服务器:(s):https://msdn.microsoft.com/en-us/library/ms241613(v=vs.120).aspx MS有大多数的符号(PDBs)可执行文件(和DLL)。 –

+0

@athos,有没有更新?按照Richard的建议启用符号服务器后,您是否解决了此问题?您可以检查您的调试模块窗口,您可以手动加载符号,也请确保它与目标平台(任何CPU/X86/X64)无关。 –

+0

@JackZhai是的,我解决了这个问题。实际上,这是因为加载Excel等所有这些Microsoft应用程序和Windows操作系统dll的符号需要这么长时间,我取消了加载,当然,这也取消了加载我的XLL的pdb文件。一旦我加载回来,它的工作原理。 – athos

回答

1

无法找到或打开PDB文件。

通常这个错误是与加载的符号有关。我们需要在工具 - >选项 - >调试 - >符号下启用符号服务器,然后检查模块窗口并确保所有符号都已成功加载。