C#和C/C++混合编程系列4-调试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的 那么将会不会命中。