如何解决幻像断点?

ron*_*mbe 2 vb.net debugging winforms

当我启动调试会话时,程序执行会在看似断点的行(黄色背景色)处停止.我必须按F5继续,程序正常进行.

我将其称为幻像断点,因为似乎没有设置断点,即使执行在循环内停止,我只需要按F5一次即可继续.

我尝试在幻像位置设置断点,并删除所有断点,但无济于事.

我能找到的唯一其他类似问题是Java和MS-Access,其中解决方案是对应用程序进行反编译.

虽然这在开发过程中非常烦人,但我还是咬紧牙关,直到应用程序安装在Citrix服务器上,其中显示一个错误消息框,说明遇到了断点.

作为事后的想法,我刚刚重建了安装程序,在运行应用程序后,发出了一个严重错误.在调试模式下,消息是"myapp.exe已触发断点:".我无法解释为什么它在Citrix服务器上完全有效.

我肯定会感谢有关如何解决此问题的任何建议.

TIA

Han*_*ant 5

您正在运行其他人的代码,并且该代码具有编译到程序中的显式调试器中断指令.例如,您可以通过在托管程序中编写Debugger.Break()来实现此目的.它也可能存在于非托管代码中,__ decugbreak()内部函数或DebugBreak()winapi函数执行此操作.可能是一个简单的疏忽,可能是故意留在代码中来警告问题.

找到执行此操作的程序员的一种方法是使用调试器.Project + Properties,Debug选项卡,勾选"启用非托管代码调试"选项.然后工具+选项,调试,常规,取消选中"启用我的代码"选项.

运行该程序并重现该条件.现在使用Debug + Windows + Call Stack并查看列表的最顶部.如有必要,请向上滚动.它可能会显示为灰色,表示这不是您的代码,它不会.你会在那里看到DLL的名称.打电话给编写该DLL的公司或程序员并征求意见.