首页 文章

我如何解决“断点当前不会被击中 . 此文档未加载任何符号 . “警告?

提问于
浏览
1310

快递版C#桌面应用程序 . 工作后5秒钟没有工作 .

我尝试了以下内容 .

  • 确保在所有程序集上设置调试配置,调试标志和完整调试信息 .

  • 从我的整个计算机中删除所有bin和obj文件夹以及与项目相关的所有DLL .

  • 重新创建从头开始导致问题的项目 .

  • 重启 .

我在解决方案中有两个WinForms项目 . 其中一个加载调试信息,一个不加载 . 它们都指的是我试图以完全相同的方式在项目文件中获取调试信息的程序集 . 有任何想法吗?


我想在这里添加,主要是为了我自己回来审查这个问题时,在加载程序集之前不加载符号,并且在需要之前不加载程序集 . 如果断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,将不会加载符号(并且将显示断点未被命中) .

30 回答

  • 4

    我尝试了上面提到的一切,但没有任何效果 . [清洁解决方案,并检查PDB文件等]

    即使发布相同的解决方案也无法解决问题 .

    然后我回到我通常要解决的问题(愚弄这个顽固的Visual Studio)

    All I did was to make a deliberate change in code and publish the solution. Then I reverted the change and published again.

    Voila [PDB文件摆脱邪恶的精神] ..不是一个聪明的决议,但这确实有效..: - |

  • 28

    要检查的事项要明确:确保将配置设置为“调试”而不是“释放” . 您可以在“发布”模式下调试启动项目,但不能在引用的类库中调试 .

  • 21

    开始调试,一旦到达断点或使用 Debug > Break All ,请使用 Debug > Windows > Modules . 您'll see a list of all the assemblies that are loaded into the process. Locate the one you want to get debug info for. Right-click it and select Symbol Load Information. You'将获得一个对话框,其中列出了查找程序集的.pdb文件的所有目录 . 根据实际的.pdb位置验证该列表 . 确保它找不到旧的 .

    在正常项目中,程序集及其.pdb文件应始终由IDE复制到与.exe相同的文件夹中 . 项目的bin \ Debug文件夹 . 如果您一直在玩GAC,请务必从GAC中删除一个 .

  • 3

    首先尝试通过右键单击项目重建项目>重建如果这不起作用,请尝试清理项目(在项目上单击鼠标右键>清除)

    如果这不起作用,请检查:

    • 右键单击 project

    • 选择 [Properties]

    • 选择 [Build] 选项卡

    • 确保选中 [Define DEBUG constant][Define TRACE constant]

    • 单击“构建”选项卡页面底部的 [Advanced] 按钮

    • 确保 [Debug Info:] 设置为 [full]

    • 点击 [OK] and rebuild 项目;-)

    (步骤6生成.pdb文件,这些是调试符号)

  • 142

    只是简单的尝试 - 你可能已经尝试过了 . 右键单击解决方案资源管理器中的解决方案,单击 "clean solution", this deletes all the compiled and temporary files associated with a solution .

    重建解决方案并尝试再次调试 .

    我在解决方案中也遇到了多个项目的断点问题 - 一些编译为x86,一些编译为x64 .

  • 314

    禁用“调试/常规”设置中的“仅我的代码”选项 .

  • 5

    交叉发布此修复程序来自Hans K,我在类似的线程>> HERE <<上找到:

    右键单击解决方案 - >属性查看公共属性 - >启动项目选择多个启动项目选择需要调试的项目的启动操作 .

  • 34

    选定的答案让我解决了我的问题 . 但我需要做更多的事情:

    即使在下拉列表中选择了“调试”:

    enter image description here

    在项目Properties> Build中:

    enter image description here

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

    enter image description here

    enter image description here

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

    enter image description here

  • 36

    Debug > Windows > Modules 看看正在加载的模块让我朝着正确的方向前进 .

    在我的例子中,IIS Express似乎正在从临时ASP.NET文件加载不同的DLL .

    解决方案?

    • 浏览 C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs

    • 删除此目录中的所有内容!

  • 8

    我能够通过简单地将“附加到进程”中的选项设置为“自动确定要调试的代码类型”选项来修复错误,如附带的屏幕截图所示 .

    只需按照以下步骤操作:

    • 从菜单栏转到 Debug

    • 点击 Attach to Process

    • Attach to 选项附近,单击 Select 按钮

    • 将出现 Select Code Type 窗口

    • 现在选择选项 Automatically determine the type of code to debug 并单击“确定”按钮 .

    Fixed Debugging Error

  • 940

    检查bin / Debug文件夹中是否缺少.pbd文件 . 如果是,那么转到你的“属性”项目,在底部选择“构建”,然后选择“高级” . 在出现的新窗口的“调试信息”下选择“完整” . 这是我的问题,并为我解决了 .

    Showing where to find the setting

  • 255

    有时,即使它给你这个错误, breakpoint 仍然会被击中,所以只需忽略错误 . 这种情况在 MVC web appViews 中经常发生 .

  • 10

    在我的案例中,在我的项目属性中检查了“优化代码” . 这导致VS将我的程序集视为“不是我的代码”,反过来,它没有为它加载符号 .

    解决方案是取消选中此项 .
    Location of Optimize Code checkbox

  • 14

    只需检查您的解决方案是否处于发布模式 .

  • 39

    尝试在Windows中以管理员身份运行visual studio .

  • 41

    在我的情况下,我试图在relase模式下调试 . 一旦我将其更改为调试模式 . 它的工作

  • 55

    您需要在编译器设置中启用“生成调试信息”

  • 6

    我们找到了问题的原因 . 此代码使用.aspx文件的Page指令中的“CodeBehind”属性,而不是“CodeFile”属性(ASP.NET 2.0及更高版本) . 经过几天的绝望,简单的搜索和替换解决了这个问题 .

  • 7

    Microsoft Visual Studio Express 2013版中不存在“开始调试,调试Windows模块”选项 .

    在工具选项中取消选中 "Use Managed Compatibility Mode" 调试修复此问题 .

  • 10

    这些答案都没有解决我的问题 . 我尝试了另一件事,事实上带停止的项目实际上并不是加载的项目 . 我发现Hans Passant写了.dll我想要停止调试器和在.exe文件附近复制的关联.pdb文件 . 这些文件的日期较旧,所以我认为它们在运行时没有更新 . 我手动删除它们,Visual Studio创建另一对并将这个新对放在.exe附近 . 现在破坏了!

    也许Visual Studio无法复制和替换.exe附近的现有文件(.dll和.pdb),因为还有另一个 . 因此,如果我手动删除,那么VS可以在.exe附近创建新的 .

    我认为另一个更改(检查等 - 从另一个答案)触发了一些东西,Visual Studio复制并将dll和pdb从项目文件夹替换为exe附近的文件夹,这是一个解决方案 .

    我认为问题的根本原因是Visual Studio在运行时使用另一个文件,没有来自项目的文件,带有stop .

    也许这个答案可以帮助别人!

  • 23

    仅限Web应用程序(IIS Express):

    • 右键单击IIS Express Tray并关闭IIS .

    • 清洁解决方案

    IIS Tray

  • 5

    这花了我一段时间尝试了上面的其他选项,并出于一些奇怪的原因调试停止工作 .

    工具 - >选项 - >调试 - >常规 - >(取消)“要求源文件与原始版本完全匹配”选项

  • 5

    项目属性(然后选择您的构建配置)>构建选项卡>高级...>调试信息(下拉列表)

    设置为'all'或'pdb-only'然后重建

  • 6

    而不是仅仅做所有这些事情

    关闭并重新打开

    它将解决问题的解决方案

  • 6

    我也有同样的问题,我在x86(或x64)中重建整个解决方案(包括引用的项目)

    即使我将所有项目从Configuration Manager(Build-> ConfigManager)设置为x86,我的一些项目也没有设置为x86 .

    因此,只需确保右键单击该项目并按照

    项目 - >属性 - >调试选项卡,验证配置和平台 .

  • 4

    我正在使用VS10将C#应用程序与静态库集成 - 我是新手 . 我写了一个托管代码DLL来连接它们 . 我可以在任何地方设置断点,但静态库 . 我收到了上述消息 - 没有为此文档加载任何符号 . 我尝试了很多上面的建议 . 我可以看到符号没有被加载 . 我终于注意到一个复选框Configuration Debug,Enable unmanaged代码调试 . 这允许我在静态lib函数中设置断点 .

  • 16

    我仔细阅读了上面的所有答案,但没有一个解决了我的问题 .

    就我而言,我正在编译一个类库(DLL) . 似乎没有模块在Debug - > Modules中加载,所以我甚至无法手动加载符号 .

    我的解决方案是将此行添加到我的代码中:

    System.Diagnostics.Debugger.Launch();
    

    一旦达到此代码,就会触发异常并且.NET Framework会显示一个对话框,询问您要使用哪个Visual Studio(即VS 2008的新实例,VS 2013的新实例等)来调试程序 . 您可以在加载项目的情况下选择VS的现有实例 . 这会将进程附加到VS会话并加载所有符号,现在您可以调试项目 .

    当然,编译必须使用Debug配置,而不是Release .

  • 4

    我知道我已经迟到了很多年,但我认为我做错了什么并按照上述步骤然后我意识到我错误地将解决方案配置设置为'Release':)

  • 206

    我有类似的问题,我做了以下:Debug => Options => General =>删除“启用我的代码”的复选标记这对我有用..

  • 4

    对于ASP.Net应用程序,请检查站点的属性,ASP.NET选项卡 . 确保选择了正确的ASP.NET版本 .

相关问题