Visual Studio SDK Breakpoint2.BreakWhenHit = true 抛出异常 0x8971101A
Visual Studio SDK Breakpoint2.BreakWhenHit = true throws exception 0x8971101A
以下代码产生异常:
Breakpoint2 breakpoint = ...;
breakpoint.BreakWhenHit = true;
// System.Runtime.InteropServices.COMException (0x8971101A): Exception from HRESULT: 0x8971101A
// at EnvDTE80.Breakpoint2.set_BreakWhenHit(Boolean BreakWhenHit)
但是如果我把BreakWhenHit
设置为false
,也不例外。
为什么会发生这种情况,我该如何解决?
如果没有设置断点Message
,好像会运行失败
奇怪的是它在 BreakWhenHit = true
(断点)上失败了,但在 UI 中只有跟踪点需要一条消息。
这是我的解决方法(需要时 sets/resets 消息):
private void SetBreakWhenHit(Breakpoint2 breakpoint, bool value) {
var messageStubbed = false;
if (value && string.IsNullOrEmpty(breakpoint.Message)) {
//
breakpoint.Message = "stub";
messageStubbed = true;
}
breakpoint.BreakWhenHit = value;
if (messageStubbed)
breakpoint.Message = "";
}
以下代码产生异常:
Breakpoint2 breakpoint = ...;
breakpoint.BreakWhenHit = true;
// System.Runtime.InteropServices.COMException (0x8971101A): Exception from HRESULT: 0x8971101A
// at EnvDTE80.Breakpoint2.set_BreakWhenHit(Boolean BreakWhenHit)
但是如果我把BreakWhenHit
设置为false
,也不例外。
为什么会发生这种情况,我该如何解决?
如果没有设置断点Message
,好像会运行失败
奇怪的是它在 BreakWhenHit = true
(断点)上失败了,但在 UI 中只有跟踪点需要一条消息。
这是我的解决方法(需要时 sets/resets 消息):
private void SetBreakWhenHit(Breakpoint2 breakpoint, bool value) {
var messageStubbed = false;
if (value && string.IsNullOrEmpty(breakpoint.Message)) {
//
breakpoint.Message = "stub";
messageStubbed = true;
}
breakpoint.BreakWhenHit = value;
if (messageStubbed)
breakpoint.Message = "";
}