通过COM从C 解决方案进行调试C#DLL
Debug C# dll from C++ solution via COM
我有一个C 解决方案。启动项目是一个EXE。在解决方案中,有一个数字C#dll(targinaling .NET Framework 2.0)为COM Interop注册。当我在C#代码中放置断点时,我会使用"No native symbols in symbol file"
我尝试将Project Property Pages -> Debugging -> Debugger Type
设置为调用COM方法的启动项目。
我已经检查了Debug -> Windows -> Modules
。它已经加载了我的dll,符号状态为 "No native symbols in symbol file"
。
这不是世界的尽头,因为如果我做Debug -> Start Without Debugging
,然后再做Debug -> Attach to Process
,则将Attach To:
更改为Managed (v2.0, v1.1, v1.0) code, Native code
。然后,我在C 代码和C#代码中遇到断点。
所以我有解决方法,但是我认为是否可以通过附加过程来做到这一点 - 我应该能够通过调试来做到这一点。
仅通过执行Debug -> Start Debugging
?
我能够通过以下内容从VS2008中的C 项目调试我的C#dll:
在C 项目的属性中,goto配置属性 ->调试。将"调试类型"设置为混合。"附件"应设置为no。
在您的C#项目属性中,在"调试"选项卡中,将"启动外部程序"设置为C 项目的可执行文件。
我知道它有点旧,但我找到了一个实用的解决方案。
我使用使用C#com-object的C 应用程序时也有相同的问题。我在C 和C#侧的Visual Studio中尝试了几个设置。直到我尝试手动启动调试器之前,没有任何帮助。
您可以使用
Debugger.Launch();
在您的C#DLL上手动启动调试器。我知道这不是最好的,而是一种实用的方式。在以后的生产环境中,您必须删除调试器启动功能:)。
问候
我不确定这会有所帮助,但我们与C#和C 合作很多。我发现,通过将C 项目和C#项目放置在同一解决方案中,并在C#项目中启用"本机调试",这是可能的。然后,在调试时,我能够在他们之间来回跳动。
- 无法使用 Qt 15.3.1 进行远程调试时加载 qtcreatorcdbext.dll
- VS2010 C++ 调试托管 (C++/CLI) DLL
- WinDeployqt 不会为调试应用程序部署 Qwindowsd.dll
- 调试 ASP MVC 应用程序中使用的C++ DLL
- 如何调试 COM DLL
- 使用dll源代码C++调试dll文件
- 为发布和调试生成C++ dll
- 将C++函数从 DLL 导出为 C 时调试和发布之间的差异
- 从Excel VBA调用C++DLL只能从Visual Studio中的调试实例工作
- 应用程序仅在qt调试器中加载dll,而不是独立加载
- 在 gdb (Windows) 中添加 dll 的调试符号
- 在Visual Studio中调试Qt,缺少msvcp140d_app.dll
- 如何打印调试C++ Win32 DLL?
- 如何从 Java 调试 CPP DLL
- 在 Visual Studio 2012 中调试 C DLL 文件时无法单步执行代码
- 调试 c++ dll 时找不到调试信息
- C# 调试 C++ dll 适用于 VS2013,但不适用于 VS2010
- 我的调试版本dll使用了可重新分发和崩溃的发布版本
- 如何调试msvcp100 .dll中的崩溃
- 如何调试记事本++ DLL插件