我想将DebuggerStepThrough属性添加到我的类的所有方法.是否足以加入DebuggerStepThrough课程?
我希望默认跳过调试所有std :: namespace C++,而不将代码窗口更改为std :: code,由Microsoft编写为xstring.这个问题类似于: 如何在步入时跳过VS 2008中的常见类?和 一步一步调试在MSVC++ 2010期间自动跳过STL函数.唯一的区别是他们的解决方案适用于Visual Studio 2008和2010.我自己尝试过,它适用于visual studio 2010,但我想在visual studio 2013上进行.同样的解决方案在visual studio 2013上不起作用我尝试将注册表中的所有值更改为:
_RTC_CheckEsp
Run Code Online (Sandbox Code Playgroud)
至
std\:\:.*=NoStepInto
Run Code Online (Sandbox Code Playgroud)
其中一些是视觉工作室12.0(视觉工作室2013)的价值,但重新启动visual studio 2013后,没有任何改变.相反,这适用于Visual Studio 2010."Just My Code"选项已打开.
c++ debugging visual-studio visual-studio-debugging visual-studio-2013
我一定有笨手笨脚的东西才能将其关闭,但是当我尝试在调试模式下运行任何 C# 项目(.net 6 windows wpf,甚至只是命令行应用程序)时,我不再看到该窗口Diagnostic Tools。这是显示内存消耗和其他内容的实时图表的东西。
我一直在尝试重新启用Diagnostic Tools,但到目前为止还无法做到。我可以在调试模式下运行,其他一切看起来都正常,我可以添加断点等。可能出了什么问题?
这实在是太令人费解了!
查看文档(调试时测量性能),它说......
除非您将其关闭,否则诊断工具窗口会自动出现。要打开该窗口,请单击“调试”/“Windows”/“显示诊断工具”(或按 Ctrl + Alt + F2)。
这是我尝试过的:
ctrl + alt + f2 什么也没做。
在 Visual Studio 中转到菜单栏:Debug/Windows,没有“显示诊断工具”项目。
Diagnostic Tools,它为我提供了“调试”>“常规”的链接,但选项对话框中没有“调试时启用诊断工具”复选框。当然,我也尝试过关闭/重新打开VS。此外,还从 VS 安装程序执行了更新并进行了“修复”。还是同样的行为。
我还尝试按照此 msdn 论坛帖子的指示“重置 Windows 布局”和“重置所有设置” 。还是卡住了。
根据Mohsyn的建议,查看了工具>>选项>>调试。似乎没有检查与“托管或本机兼容模式”相关的任何内容。
下一步是卸载 VS 2022 并重新安装。
我有一个小问题.有时当我调试应用程序时,我想在调试会话期间模拟从方法抛出的异常,但是没有办法做到这一点.我甚至无法将光标(指示当前行的黄色光标)拖动到异常块.在运行期间触发异常的唯一方法是更改当前代码行并编写我想要抛出的异常.这种方法并不好,因为我可能忘记在下次运行时将其更改回来.
.net c# visual-studio-2010 visual-studio visual-studio-debugging
我正在使用visual studio 2010,每次打开它时,都会禁用"工具 - >选项 - >调试下的"我的代码".有谁知道如何永久启用此功能?
如果这有任何不同,我启用了以下扩展:
.NET反射器视觉工作室扩展; NuGet包管理器; 流程模板编辑器; 生产力电动工具; specflow; WITDesigner
我想做一个扩展,以快速切换调试器中的CLR异常.
我尝试了几种方法,但都不令人满意.
这是我已经尝试过的:
ExceptionSettings.SetBreakWhenThrown(MSDN)
这非常慢(请参阅此Connect问题).我已经尝试了在抛出异常时问题" Toggle"Break的方法."使用宏或键盘快捷方式 "并且似乎都不可靠地工作:在大多数情况下只有顶级复选框被设置,并且在调试时它实际上不会中断异常.
调用DTE.ExecuteCommand("Debug.Exceptions")显示窗口,然后在它之前调用SetWindowsHookEx(MSDN)在它出现之前拦截它(这样用户就没有闪光).这似乎是可能的,因为我能够拦截消息并得到HWND.但它似乎很hacky并且窗口不是那么容易操作(它有一些奇怪的组合SysListView32与自定义复选框和SysTreeView32).所以我将它作为最后的机会解决方案.
以某种方式获取IDebugEngine2(MSDN)托管代码并在调试会话开始时调用IDebugEngine2.SetException(MSDN).这似乎是可能的,但我在获取调试引擎时遇到问题.我尝试过在MSDN论坛上IVsLoader描述的方法,但我很确定它给了我一个与调试会话无关的新实例.
我在这里也问过这个问题:" Visual Studio:如何从VS包中获取IDebugEngine2(除了IVsLoader) ",但没有得到解决方案.
我已经尝试使用IVsDebugger.AdviseDebugEventCallback(MSDN),并通过实施的IDebugEventCallback2(MSDN),但我总是得到null的pEngine(没有IDebugEngineCreateEvent2任何).
我得到IDebugSessionCreateEvent2(没有文档?)并且可以从中得到IDebugSession2它,但是它的SetException调用总是给我一个HRESULT错误的参数,所以我可能会在这里遗漏一些东西(调用SetException引擎从IVsLoader给出好的,只是不起作用).
是否有其他方法比那些方法更好或者我错过了现有的方法?
更新/注意:
如果你发现这个问题,因为你想要一个更快的"打破所有异常",我已经做了一个免费扩展,你可以从Visual Studio Gallery:Exception Breaker.
.net visual-studio-2010 visual-studio visual-studio-debugging visual-studio-extensions
这是我尝试过的:
在Visual Studio 2017中创建了一个新的控制台应用程序(.NET Framework).
添加了以下代码:
static void Main(string[] args)
{
new Dictionary<int, int>().TryGetValue(3, out int x); //I want to step into TryGetValue() (this is just an example)
}
Run Code Online (Sandbox Code Playgroud)
配置此处列出的设置:https: //blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/
已确认的符号将加载到"模块"窗口中:
mscorlib.dll已加载符号.4.6.1586.0构建者:NETFXREL2
试过:"踏入(F11)"
尝试:"步入特定"| "System.Collections.Generic.Dictionary.TryGetValue"
两者都只是跨过了界限.
我尝试使用以下详细信息配置VS:http://www.symbolsource.org/Public/Home/VisualStudio
同样的结果,调试器跨越了这一行.
我在这里看了答案:https://stackoverflow.com/a/12432029/297451
但是这个版本似乎不是安全更新,搜索"site:support.microsoft.com/kb 4.6.1586.0"什么都不会产生任何结果.
我究竟做错了什么?
.net c# debug-symbols visual-studio-debugging visual-studio-2017
在Visual Studio 2010监视窗口中,我发现变量的值变为-1.#IND000.这是什么意思?
我使用Async/Await释放我的UI-Thread并完成多线程.我遇到异常时遇到问题.在Call Stack我的异步部分与百达开始ThreadPoolWorkQue.Dipatch(),这并不能帮助我非常多.
我找到了MSDN文章Andrew Stasyuk.Async Causality Chain跟踪它,但据我了解,它不是一个随时可用的解决方案.
如果在Async/Await中使用多线程,最好/最简单的调试方法是什么?
我Debug.WriteLn在Visual Studio 2015中检查输出中的特定内容时遇到问题.(2012和2013版也是如此.)
XCode和Eclipse都在Output窗口顶部包含一个过滤器框.我试图为Visual Studio找到类似的扩展,但我没有运气.有没有办法有类似的功能并过滤输出窗口?