代码之家  ›  专栏  ›  技术社区  ›  jyoung

如何在混合(C/C/C++)调试中设置数据断点?

  •  20
  • jyoung  · 技术社区  · 17 年前

    我在C语言中启动我的程序,然后调用一些非托管C++。

    当我在非托管C++中中断一行时,“新数据断点”菜单项变灰了。

    这附近还有吗?

    4 回复  |  直到 10 年前
        1
  •  16
  •   Community Mohan Dere    9 年前

    要在混合模式进程的本机部分设置数据断点,请参见 answer posted by jyoung .

    Visual Studio在运行纯本机代码以外的任何代码时都禁用数据断点。见 this 发布部分解释为什么从一个vs项目经理。

        2
  •  32
  •   dss539    13 年前

    所以要做到这一点,我必须:

    • 将非托管dll设置为启动项目
    • 将托管程序设置为启动命令
    • 将调试模式设置为 本地人
    • “中断执行”或命中断点,使您处于“调试”状态

    亚齐

        3
  •  4
  •   aganea    13 年前

    建议的解决方案并非一直有效。即使在以本机模式调试时,程序在本机代码段中断,在尝试设置“新数据断点”时,也会弹出一个 “无法设置断点。公共语言运行时不支持数据断点“

    另一种方法是直接从代码中添加数据断点。看文章 here .

    这在混合模式下工作得很好,只需要激活本机调试模式(如上所述)。

        4
  •  2
  •   Mojtaba Rezaeian    10 年前

    在任何地方都可以使用的一个非常有用的技巧是在特殊情况下从代码中调用断点:

    If (Condition)
        System.Diagnostics.Debugger.Break()