【问题标题】:The break point in a "WinRT Component DLL" is not hitting while debugging a C# UWP app调试 C# UWP 应用时未命中“WinRT 组件 DLL”中的断点
【发布时间】:2021-03-22 19:35:59
【问题描述】:
【问题讨论】:
标签:
c#
c++
uwp
windows-runtime
winrt-component
【解决方案1】:
一般我遇到这个问题是因为调试器在错误的模式下调试。例如,我正在尝试调试托管代码,但调试器附加在本机调试模式下。自动启动调试器时不知道如何选择调试模式。但是,如果您在没有调试器的情况下启动应用程序,然后选择“调试 -> 附加到进程”,您将能够在选择进程时选择所需的调试模式。 “自动确定要调试的代码类型”通常对我不起作用。对我来说,调试 Native 和 Managed 似乎很受欢迎。所以有时我经常只选择一种模式,直到断点在我需要的模式下正常工作。
今天我发现了一个新案例,我无法在代码中打断点。所以我在这里添加信息。调试 C/CLI 代码时,我无法让断点在 Visual Studio 2019 中保持红色(活动)。它是原生 C++ 和 C# 的混合体。为了让事情正常工作,我必须在工具 -> 选项 -> 调试 -> 常规下禁用“启用编辑并继续”。此外,当我附加到该过程时,我使用了“托管兼容模式”以及我正在构建的托管 .net 版本。所以“托管(.Net 4x)代码”。我不确定最后一次更改是否必要。但我想在我忘记它之前更新它。
我有时无法设置断点的第二个原因是加载的代码与我的符号不匹配。我使用调试窗口“模块”来查看符号是否已加载。如果没有,我会检查加载文件的时间和日期是否与我刚刚构建的相符。未加载符号时,右键单击模块并选择“符号加载信息...”也很有用。因为这列出了编译器在哪里搜索符号。