2

我有一个 Delphi 应用程序,它加载了一些我想要调试的 .NET 程序集。我不想调试 Delphi 代码,只想调试 .NET 程序集。

在 VS 2010 中,我所要做的就是使我的 .NET 代码的输出目录指向 Delphi 可执行文件夹并设置Start external program为指向可执行路径。当我按下 F5 时,它会自动启动 Delphi 代码,加载模块,然后我就可以调试了。

现在我迁移到 VS 2012。我做同样的事情,但调试不起作用。该过程开始并正确连接,但“模块”窗口完全为空。未加载任何符号。我无法调试任何东西。

为了让它在 VS 2012 中工作,我必须做些什么特别的事情吗?

4

2 回答 2

3

我的情况与您的情况完全相同(希望为时不晚)。

问题是,在“附加进程”中,当您启动外部程序时,您可以选择 .NET 版本的调试器(在我们的例子中为 Managed 3-3.5),由于某种原因,默认调试器是 4。怎么办:文件> Add>Existing Project,添加非托管程序的基本EXE文件。它将显示为单个文件项目。右键单击它并“设置为启动项目”。再次右键单击和属性。设置调试器类型:托管(v3.5、v3.0、v2.0)。

就是这样,调试器现在将加载正确的版本。我很肯定这会很好。

于 2013-06-17T13:52:50.053 回答
1

我看到了完全相同的问题。使用 .NET 3.5 管理单元运行 MMC.exe。在升级到 VS2012 之前调试得很好,现在升级后它说没有加载本机符号并且断点不起作用。@jdv-JandeVaan 提示是我前进所需要的。我需要将调试器设置为使用 .NET 3.5。我能找到的唯一方法是在 Attach to Process... 对话框中选择 .NET 3.5。不方便,但它有效。

于 2013-03-10T01:14:58.847 回答