【问题标题】:How to debug C# program launched from an external exe written in Borland C++Builder如何调试从用 Borland C++Builder 编写的外部 exe 启动的 C# 程序
【发布时间】:2018-06-28 03:38:33
【问题描述】:

以下是我的流程

//'''''''''''''''''''''''' //'程序A'--->调用CreateProcess---->'程序B' //'BCB6''C#2010' //''''''''''''''''''''''''

我想在 Visual Studio 2010 中调试 Program B。它是用 C# 编写的。我已将Properties -> Debug -> Start External Program 设置为程序A 的文件路径,但我无法在main() 中输入断点。

有人知道如何解决这个问题吗?

更新:以下是我的设置和代码。我还是不明白为什么我不能在C#程序中输入断点:-(

【问题讨论】:

    标签: c# debugging c++builder c++builder-6


    【解决方案1】:

    你用错了方法。如果您希望调试第二个应用程序 (c#) Program B,那么这就是您应该在 Visual Studio 中加载的项目。

    在c#应用的调试设置中,设置

    Properties -> Debug -> Start External ProgramProgram A

    这将允许您在程序 B 的 c# 代码中设置断点。

    如果您正在处理 .dll 项目,也会发生同样的事情;你想在里面设置断点;但是 dll 是由您控制之外的 .exe 调用的(例如本机进程)。您如上所述设置启动外部程序并设置外部进程的路径。

    或者

    您可以 Debug.Attach 到进程,但这需要仔细计时,进程必须首先运行,并且您必须确保在设置断点之前没有执行有问题的行。 (通常你不能设置断点,直到你先附加)

    【讨论】:

    • 是的,我已经将启动外部程序设置为程序A,并在程序B的c#代码中设置断点但没有用...(对不起我的英语不好)
    • @TuRoland 在 Visual Studio 中,右键单击 Program B 并选择 Set as Startup Project
    【解决方案2】:

    如果程序A使用程序B,则启动程序A;在 Visual Studio 中打开 Program B 的解决方案;并在调试下拉菜单下选择“附加到进程”。这将允许您放置断点并通过代码进行调试。您还可以将构建配置为在 VS 中构建/启动 程序 B 时启动 程序 A,如 User4534 的回答中所述......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 2023-03-25
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      相关资源
      最近更新 更多