C#和C/C++混合编程系列4-调试C#代码

梦想游戏人
目录:
C/C++, C#

先阐述mono生成的exe如何进行调试,再说明混合编程下如何对C#代码进行调试。

调试工具是vscode的SDB mono debug 扩展

1.打开vscode 安装mono debug扩展。

2.mcs命令行编译下图代码    mcs -debug Program.cs

3. 执行mono 运行 该exe    mono –debug –debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:5412 Program.exe

vscode环境配置。

F5调试运行后断点命中了。

看官方文档调试方法半天没解决,上面的原始方法提供了一些灵感。

接下来阐述混合编程中如何进行调试C#代码。调试器还是vscode。

1.需要从pdb文件生成mdb文件以供调试使用,mono下有pdb2mdb.bat 命令行生成mdb文件。

2.C++代码中加载调试的mdb文件信息,开启调试命令行 

用mono_debug_open_image_from_memory 加载调试的mdb文件

3.vscode打下断点F5运行即可进行调试了。

jit命令行suspend=y时 启动调试器 才会命中。如果是中途attach的 那么将会不会命中。

Scroll Up