【发布时间】:2010-09-19 14:11:18
【问题描述】:
我在 C# 中启动我的程序,然后调用一些非托管 C++。
当我在非托管 C++ 中换行时,“新数据断点”菜单项显示为灰色。
这里面还有吗?
【问题讨论】:
标签: .net visual-studio-2008 debugging mixed-mode
我在 C# 中启动我的程序,然后调用一些非托管 C++。
当我在非托管 C++ 中换行时,“新数据断点”菜单项显示为灰色。
这里面还有吗?
【问题讨论】:
标签: .net visual-studio-2008 debugging mixed-mode
要在混合模式进程的本机部分设置数据断点,请参阅answer posted by jyoung。
在运行纯本机代码以外的任何内容时,Visual Studio 会禁用数据断点。请参阅this 帖子,了解 VS 项目经理的部分解释。
【讨论】:
所以我必须这样做:
是的
【讨论】:
An unhandled exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll Additional information: 'The invocation of the constructor on type 'ATMapExec2WPF.MainWindow' that matches the specified binding constraints threw an exception.' Line number '3' and line position '9'. 显然,我的 XAML 文件没有任何问题......它可以正常工作。不过,这不是你的错……这是 WPF 调试的噩梦。
建议的解决方案并非始终有效。即使在本机模式下调试时,程序在本机代码段中中断,当尝试设置“新数据断点”时,我会弹出一个 “无法设置断点。不支持数据断点公共语言运行时”
另一种方法是直接从代码中添加数据断点。见文章here。
这在混合模式下效果很好,它只需要激活本机调试模式(如上所述)
【讨论】:
一个非常有用的技巧是在特殊情况下从代码中调用断点:
If (Condition)
System.Diagnostics.Debugger.Break()
【讨论】: