• 无法在互操作调试上进行编辑并继续进


    有人在论坛上问过关于在混合模式下编辑并继续(EnC)的问题。不能在启用混合模式(interop)调试的情况下使用托管EnC。这是CLR调试服务的一个限制。互操作调试和EnC都是复杂的特性;将它们结合起来将是一个巨大的测试矩阵,而且成本非常高。因此,如果你有C和本地C++解决方案,你的选择是:
    1. 如果只想调试+编辑C#代码,则可以使用仅托管调试。
    2. 如果你想调试+编辑只是本地C++代码,你可以使用纯本地调试。
    3. 如果您想调试C#和本机C++代码(但不编辑),可以使用互操作调试。
    托管调试和本机调试基本上都有自己的实现(单步执行、调用堆栈、断点、检查)。互操作调试将这两个世界粘在一起。EnC也一样。在托管代码中执行EnC与在本机代码中执行EnC完全不同,并且使用完全不相交的调试功能。因此,虽然托管EnC不能在interop下工作,但调试器可以编写本机EnC支持(我不知道VS是否允许本机EnC)。
     

    这在MC++中也很有趣。如果将C++编译到IL,那么它是托管代码,需要托管调试服务。如果将C++编译为本机,则是本地代码,并使用本机调试服务。由于Mc++使IL和本地(以及产生混合汇编)都非常容易编译C++,所以调试MC ++通常默认为互操作调试。

     
     
  • 相关阅读:
    tomcat请求流程浅解
    jdk8为啥lambda表达式建议你用冒号形式调用方法
    打印目录树形结构
    类斐波那契数列的java实现
    sping boot 如何将外部引入的jar包打到fat jar里面
    java多线程之生产者消费者
    Hadoop、Hbase、ZooKeeper的搭建
    java 静态代码块、构造代码块、构造函数调用顺序
    MyBatis的 or 和and 问题
    mysql
  • 原文地址:https://www.cnblogs.com/yilang/p/13913270.html
Copyright © 2020-2023  润新知