首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSX:在运行时以编程方式禁用断点

VSX:在运行时以编程方式禁用断点
EN

Stack Overflow用户
提问于 2010-01-07 05:52:55
回答 2查看 345关注 0票数 2

如何在运行时启用或禁用断点?我正在编写一个测试工作台应用程序,它可以运行其他.net代码来调试插件。工作台应用程序本身是不可调试的(DebuggableNonUserCodeAttribute),但它调用的用户代码应该是可调试的。但是,在运行时的某些情况下,不应该使用用户代码断点。

我可以想象实现这一目标的各种方法,但许多方法可能是不可能的:

1)以编程方式附加和分离调试器

2)以编程方式启用和禁用所有断点(最好本地化到程序集或类)

3)在运行时使用DebuggableNonUserCodeAttribute动态修饰和取消修饰方法。

4)以某种方式将选定堆栈框架之外的线程的整个代码分支标记为调试器的“非断点”。DebuggableNonUserCodeAttribute似乎只能在方法或类中工作,但不会影响下游代码的可调试性。

编辑:为了澄清:在运行时,同一段最终用户代码将由宿主可执行文件多次运行,其中一些地方应该支持断点,而另一些地方不应该支持断点。要求用户修改此功能的代码或要求用户设置条件断点是不合适的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-08 05:36:28

您可以通过DTE自动化对象模型的调试器部分执行#1和#2。

How to enable/disable Breakpoints via DTE

How to attach the debugger via DTE

票数 2
EN

Stack Overflow用户

发布于 2010-01-07 06:03:22

您可以使用System.Diagnostics.Debugger.Break()而不是设置断点。只要把方法调用放在if块中就行了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2016554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档