2012-01-27 135 views
7

我已经指定2010年内的符号(pdb)文件,以便它正确加载,但我得到No source available错误和Browse to Find Source Code灰显。有谁知道我可以如何指定源代码目录或查看PDB内部找出它的位置?visual studio 2010 C++调试符号加载但无法找到源代码

编辑:我的DLL被外部程序调用。错误发生在我的DLL里面,所以我有源代码。当发生错误时,我单击调试,pdb符号被加载,但不是源。

+1

[PDB(http://msdn.microsoft.com/en-us/library/yd4f8bd1(V = vs.71)的.aspx)文件保持用于.exe文件或调试和项目信息.obj文件。我怀疑你可以“看看pdb内部找出源代码目录在哪里”。 – LihO 2012-01-27 16:49:51

+0

我可以问你实际上想做什么吗? – LihO 2012-01-27 17:12:51

+0

@LihO对不起,如果不清楚 - 我已经更新了这个问题。谢谢。 – 2012-01-27 17:41:57

回答

4

如果从它的构建目录中移动的DLL,然后调试器是不太可能能够找到源代码文件本身。您可以做的第一件事是在解决方案资源管理器窗口中的属性,通用属性,调试源文件中右键单击解决方案根节点,并将路径添加到DLL项目源目录中。

方式二:在调试器会提示你需要找到一个源代码文件的第一次。如果您在该对话框中单击取消,则当您不知道它真正要求的内容时,通常会执行此操作,IDE将会记住您的选择并且不会再提示您。通过删除或重命名解决方案目录中隐藏的.suo文件来修复此问题。

+0

我有类似的问题。我正在调试一个应用程序,并且无法步入另一个模块(DLL)中定义的函数。 *模块窗口*报告为该DLL加载了这些符号,但IDE不会进入该函数。我已经设法进入*反汇编模式,但是我不能切换回源代码(选项*转到源代码*是灰显的)。自编译以来,我还没有移动源代码。我试图删除.suo文件并设置调试源文件 - 没有帮助。有任何想法吗? – 2012-06-03 19:26:13

+0

我对可执行文件有类似的问题,但尚未移动。 “输出”窗口显示符号已加载,但它说源不可用。它可以选择浏览源代码或进行反汇编。源代码选项变灰。如果我手动打开源文件并尝试设置断点,则会显示一个空心圆圈以指示模块未加载。只适用于某些解决方案。很奇怪。 – 2014-04-02 17:44:56

1

从我了解你只是想调试你的程序,你必须在DLL的形式。问题是,外部程序使用这个DLL,你从弹出后发生错误的窗口中单击“调试”。

我假设你想在Visual Studio中打开你的项目,然后按Ctrl + Alt + P打开“附加到进程”窗口,你应该选择使用这个DLL的进程(iexplore.exe或者你正在工作的任何东西与),以便您可以在那里切换一些断点,并在之前查看发生了什么错误。

1

通过@Hans帕桑特的破解工作,但实际上,有实现这一官方的方法:右键单击您的解决方案在解决方案资源管理器,选择属性/通用属性/调试源文件。当提示输入源路径时,您应该能够查看并编辑您之前选择“取消”的所有文件的列表。

enter image description here

相关问题