概述:
在同时有 C++ 和 C# 代码的解决方案进行远程调试时,如何选择要调试的项目及断点生效问题
场景描述
同一个 sln 工程文件,里面包含一个 C++ 项目和 C# 项目,远程调试时如何让断点生效,问题比较简单,但对一些没有相关经验的同学来说可能需要查阅一下,这里简单记录并且说明一下。
解决方案
基本概念
C# 代码是预编译代码,所以 C# 编译的可执行文件包含的内容并不是最终的执行代码,执行时才会进行最终的编译,可以看看这篇文章了解下 C# 的托管, C#的三大难点之二:托管与非托管_c#非托管内存优缺点-优快云博客
而 C++ 的可执行文件包含的内容是最终执行代码,不需要额外的翻译操作。
这也就是为什么我们在调试 C# 程序时,都需要选择 托管 的缘故。
如何操作
在调用远程调试时,当我们选择了包含 C# 代码的程序,那么在界面上就会出现代码类型的下拉框供选择。如下图所示:
-
远程调试选择目标程序

-
下拉框选择调试类型

如何选择
一句话,调试什么选择什么。
- 如果要调试 C# 项目,那就选择 托管,这样 C# 项目中的断点就会生效;
- 如果要调试 C++ 项目,那就选择 本机,这样 C++ 项目中的断点就会生效。
362



被折叠的 条评论
为什么被折叠?



