当前位置:首页 > 嵌入式 > 嵌入式动态
[导读]从Visual Studio 2019 v16.8 Preview 3开始,我们在WSL(Linux的Windows子系统)或远程Linux系统上添加了对Linux Core Dump的调试支持。 此支持仅适用于非托管代码的“本机”调试。

Linux Core Dump不再可怕

从Visual Studio 2019 v16.8 Preview 3开始,我们在WSL(Linux的Windows子系统)或远程Linux系统上添加了对Linux Core Dump的调试支持。 此支持仅适用于非托管代码的“本机”调试。

据我们所知的,有一些开发团队主要是在Windows开发他们的系统,但是会同时在Windows和Linux(或者,只在Linux)上部署,然后通过CI(持续集成)系统来收集和Linux相关的错误。这项新添加的特性,可以让你的调试生活更加容易:你可以在你熟悉的环境下调试Linux应用程序的崩溃错误。有了这玩意,妈妈再也不用担心碰到Core dump了。

使用的方法十分简单,在主菜单中选择:[Debug>OtherDebugTargets>DebugLinuxCoreDumpwithNativeOnly…],请注意,这个菜单项只有在你安装了[LinuxdevelopmentwithC++]工作集时才可用。如下图所示:

在接下来的对话框中,会显示调试会话的配置界面,如下图所示:

你也可以在WSL或者远程Linux上调试,但是需要在目标系统上安装有GDB。

下面我们简单的来介绍一下这个对话框的各个属性。

调试WSL(Debug on WSL)

如果这个勾选框被勾选,则Visual Studio会尝试在默认的WSL发行版上寻找Core Dump文件并启动调试会话。这个选项借助于我们对WSL的本机支持,而且无需安装SSH。

调试远程Linux系统(Remote Debug Machine)

如果上面的[Debug on WSL]没有被被勾选,则Visual Studio会在这个选项指定的远程系统上寻找Core Dump文件并启动调试会话。在下拉列表中会列出已经建立的SSH连接。你可以在[Tools > Options > Cross Platform > Connection Manager]中添加一个新的远程连接。

Core Dump文件(Core Dump File)

这个选项指定一个在目标系统存在的Core Dump文件路径。

程序(Program)

这个选项指定产生Core Dump文件的可执行文件。如果你正在WSL上调试并且你的Core Dump和可执行文件都在Windows的文件系统,则你可以通过将本地磁盘挂载到/mnt目录(例如:/mnt/c/Users…)的方式来从WSL中访问这些文件。

源文件(Sources)

这是一个可选项,主要用来指定在Windows上对应的源文件所在的根目录。如果你希望进行源码级调试,则这个选择十分有用。请按照=格式进行设置。另外,可以通过分隔符填入多个条目。

共享库搜索路径(Shared Library Search Path)

一个可选的调试符号搜索路径(会被转换为GDB对应的solib-search-path属性)。

你不需要创建一个Linux配置的CMake工程或一个基于MSBuild的Linux工程就可以使用这个功能。但是要注意的是,如果你打开了一个Linux工程,则Visual Studio将会自动在Program选项中填入对应的信息。如果你有多个编译目标,则Visual Studio会自动填入它能找到的第一个目标。

总结

我一直不太会使用GDB来调试代码,可能是被Visual Studio养成了一个巨婴吧。碰到Core dump,一般就直接啃代码了(GDB不会啊[摊手])。有了今天的这个玩意,感觉这生活还是可以值得期待的。生产环境里出毛病了? 直接上Visual Studio源码级调试:”还是原来的配方,还是同样的味道。”

最后

Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。本文来自:《Debug Linux core dumps in Visual Studio》

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭