Ins*_*ter 1456 .net c# debugging breakpoints visual-studio
快递版C#桌面应用程序.工作后5秒钟没有工作.
我尝试了以下内容.
我在解决方案中有两个WinForms项目.其中一个加载调试信息,一个不加载.它们都指的是我试图以完全相同的方式在项目文件中获取调试信息的程序集.有任何想法吗?
我想补充在这里,主要是为我自己,当我回过头来审查这个问题,该符号不加载,直到组件加载,并且没有加载组件直到需要它.如果断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,将不会加载符号(并且将显示断点未被命中).
Han*_*ant 1007
一旦到达断点或使用Debug > Break All,就开始调试,使用Debug > Windows > Modules.您将看到加载到流程中的所有程序集的列表.找到要获取调试信息的那个.右键单击它并选择符号加载信息.您将看到一个对话框,其中列出了查找程序集的.pdb文件的所有目录.根据实际的.pdb位置验证该列表.确保它找不到旧的.
在正常项目中,程序集及其.pdb文件应始终由IDE复制到与.exe相同的文件夹中.项目的bin\Debug文件夹.如果您一直在玩GAC,请务必从GAC中删除一个.
juF*_*uFo 388
首先尝试通过右键单击项目重建项目>重建如果这不起作用,请尝试清理项目(在项目上单击鼠标右键>清除)
如果这不起作用,请检查:
(步骤6生成.pdb文件,这些是调试符号)
Pat*_*ick 266
只是简单的尝试 - 你可能已经尝试过了.右键单击解决方案资源管理器中的解决方案,单击"清除解决方案",这将删除与解决方案关联的所有已编译和临时文件.
重建解决方案并尝试再次调试.
我在解决方案中也遇到了多个项目的断点问题 - 一些编译为x86,一些编译为x64.
sub*_*tal 223
禁用"调试/常规"设置中的"仅我的代码"选项.
fab*_*tto 61
选定的答案让我解决了我的问题.但我需要做更多的事情:
即使在下拉列表中选择了"调试":

在项目Properties> Build中:

Visual Studio未将符号加载到特定项目.所以在该下拉列表中我选择"Configuration Manager"并看到我的web项目的设置不正确:


然后我将其设置为"Debug"并开始生成.pdb文件.
但我需要手动复制PDB和DLL并放入VS正在寻找的文件夹(这里是所选答案帮助我的地方):

the*_*eos 42
我能够通过简单地将"附加到进程"中的选项设置为"自动确定要调试的代码类型"选项来修复错误,如附带的屏幕截图所示.
只需按照以下步骤操作:

Jam*_*s S 42
Debug> Windows> Modules看到正在加载的模块是什么让我在正确的方向.
在我的例子中,IIS Express似乎正在从临时ASP.NET文件加载不同的DLL.
解决方案?
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vsSer*_*gan 39
有时,即使它给你这个错误,breakpoint仍然会被击中,所以只需忽略错误.这经常发生在Views一个MVC web app.
Arn*_*ekk 39
检查bin/Debug文件夹中是否缺少.pbd文件.如果是,则转到项目的"属性",选择"构建",然后选择底部的"高级".在出现的新窗口的"调试信息"下选择"完整".这是我的问题,并为我解决了.
San*_*dra 29
在我的案例中,在我的项目属性中检查了"优化代码".这导致VS将我的程序集视为"不是我的代码",反过来,它没有为它加载符号.
Ran*_*ner 11
Debug或不在,如下图所示。releasedebugClean solution。Rebuild solutioncjo*_*080 10
我们找到了问题的原因.此代码使用.aspx文件的Page指令中的"CodeBehind"属性,而不是"CodeFile"属性(ASP.NET 2.0及更高版本).经过几天的绝望,简单的搜索和替换解决了这个问题.
And*_*rus 10
Microsoft Visual Studio Express 2013版中不存在"开始调试,调试+ Windows +模块"选项.
在工具选项中取消选中"使用托管兼容模式"调试修复此问题.
我尝试了上面提到的一切,但没有任何效果. [清洁解决方案,并检查PDB文件等]
即使发布相同的解决方案也无法解决问题.
然后我回到我通常要解决的问题(愚弄这个顽固的Visual Studio)
我所做的只是故意改变代码并发布解决方案.然后我恢复了变化并再次发布.
Voila [PDB文件摆脱邪恶的精神] ..不是一个聪明的决议,但这确实有效..: - |
小智 7
我正在将 C# 应用程序与静态库集成,使用VS10- 这是我的新手。
我编写了一个托管代码dll来连接它们。我可以在除了static lib.
我收到上述消息 - 尚未为此文档加载任何符号。我尝试了上面的许多建议。
我可以看到符号没有被加载。我终于注意到配置调试、启用非托管代码调试复选框。
这允许我在函数中设置断点static lib。
小智 6
这些答案都没有解决我的问题.我尝试了另一件事,事实上带停止的项目实际上并不是加载的项目.我发现Hans Passant写了.dll我想要停止调试器和在.exe文件附近复制的关联.pdb文件.这些文件的日期较旧,所以我认为它们在运行时没有更新.我手动删除它们,Visual Studio创建另一对并将这个新对放在.exe附近.现在破坏了!
也许Visual Studio无法复制和替换.exe附近的现有文件(.dll和.pdb),因为还有另一个.因此,如果我手动删除,那么VS可以在.exe附近创建新的.
我认为另一个更改(检查等 - 从另一个答案)触发了一些东西,Visual Studio复制并将dll和pdb从项目文件夹替换为exe附近的文件夹,这是一个解决方案.
我认为问题的根本原因是Visual Studio在运行时使用另一个文件,没有来自项目的文件,带有stop.
也许这个答案可以帮助别人!
我在x86(或x64)中重建整个解决方案(包括引用的项目)时遇到了同样的问题
即使我从Configuration Manager(Build-> ConfigManager)将所有项目都设置为x86,也没有将某些项目设置为x86。
因此,只需确保右键单击该项目并按照
项目->属性->调试选项卡,验证配置和平台。
小智 5
我已经仔细阅读了上面的所有答案,但没有一个能解决我的问题。
就我而言,我正在编译一个类库 (DLL)。在 Debug -> Modules 中似乎没有加载模块,所以我什至无法手动加载符号。
我的解决方案是将此行添加到我的代码中:
System.Diagnostics.Debugger.Launch();
Run Code Online (Sandbox Code Playgroud)
到达此代码后,将触发异常并且 .NET Framework 会显示一个对话框,询问您要使用哪个 Visual Studio(即 VS 2008 的新实例、VS 2013 的新实例等)来调试程序。您可以选择加载了项目的现有 VS 实例。这会将进程附加到您的 VS 会话并加载所有符号,现在您可以调试您的项目。
当然,编译必须使用Debug配置完成,而不是Release。
| 归档时间: |
|
| 查看次数: |
1143402 次 |
| 最近记录: |