如何在混合(C#/C++)调试中设置数据断点?
-
04-07-2019 - |
题
我用 C# 启动程序,然后调用一些非托管 C++。
当我在非托管 C++ 中中断一行时,“新数据断点”菜单项呈灰色显示。
有没有办法解决?
其他提示
所以要做到这一点我必须:
- 将非托管dll设置为启动项目
- 将托管程序设置为启动命令
- 将调试模式设置为 本国的
- “中断执行”或命中断点,以便处于“调试”状态
耶赫
建议的解决方案不会一直有效。即使在Native模式下进行调试时,如果程序在Native代码段中被破坏,当尝试设置'New Data Breakpoint'时,我会弹出 "断点无法设置。公共语言运行时“
不支持数据断点另一种方法是直接从代码中添加数据断点。请参阅此处文章。
这在混合模式下运行良好,它只需要激活Native调试模式(如上所述)
一个非常有用的技巧是在特殊条件下从代码中调用断点:
If (Condition)
System.Diagnostics.Debugger.Break()
不隶属于 StackOverflow