百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

VScode调试Linux详解

ahcoder 2024-12-13 20:40 38 浏览

在Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux。

一.Linux调试GUI方案简介

1) Visual studio 远程调试Linux

在VS2015版本以后Visual studio就支持Linux的编译和调试。使用熟悉的windows界面开发和调试Linux,极大地提高了开发效率,可以广泛应用的Linux服务器开发和嵌入式Linux开发。遗憾的是该方式需要基于VS工程来调试,旧的项目是基于Makefile的工程,VS不能调试Makefile工程,业界将Makefile工程转VS工程,然后用VS来调试,详见https://github.com/robotdad/vclinux。

2) 基于eclipse 本地调试Linux

因为eclipse是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试Linux

3) 基于QtCreator 本地调试Linux

因为QtCreator是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试

4) 基于eclipse 远程调试Linux

gdb+gdbserver方式,远程有一个gdbserver,本地机器通过网络发指令给gdbserver完成调试

5) 基于QtCreator远程调试Linux

gdb+gdbserver方式,远程有一个gdbserver,本地机器通过网络发指令给gdbserver完成调试

6) 基于vscode远程调试Linux

该方法支持调试Linux程序,不要编译器参与,可以完美的将Makefile工程简单的接管起来调试,可以是基于ssh+vscode方式或者gdb+vscode+gdbserver方式。本文重点介绍该ssh+vscode方法的使用。

二.基于vscode ssh远程调试Linux实战

软件安装

1) 服务器安装gdb

注意我们是ssh+vscode方式,没有用到gdbserver,故不需要安装gdbserver。

gdb+gdbserver方式,在宿主机还需要安装一个交叉编译的gdb,目标机起一个gdbserver去接收和解析指令,详见https://blog.csdn.net/zhaoxd200808501/article/details/77838933。

2)VScode 输入ctrl+shift+x

在扩展专栏安装Remote Development和C/C++,安装后完毕后产生一个SSH工具和debug工具。

建立ssh连接

这里以简单起见,使用密码账号登录。当然也可以使用公钥登录。详解官方文档

1) 选择ssh target

2) 点击+,输入 ssh root@IP –A,选择配置文件路径即可

3) 选择连接服务器,右键---connect host in current window,输入相应密码即可连接SSH服务器


配置debug 参数,并进行调试

1) 点击debug工具栏,选择Open a file用来指定远程服务器debug源文件

即选择远程服务器的debug文件,指定目录和源文件。如C/C++文件

2) 选择远程配置文件目录,并创建默认的launch.json文件

3) 修改配置文件

1.可执行文件路径

"program": "${workspaceFolder}/hello",

2.在main入口断点住

"stopAtEntry": true,

4) 选择gdb launch 调试器,就可以启动远程的hello可执行文件,并进行单步,断点等各种调试


5) vscode同样支持attach到某个进程进行在线调试,可以对线上正在运行程序进程调试和分析

更多更详细信息请关注公众号:AV_Chat

相关推荐

linux服务器--PVE(一)简介及安装(pve安装ifupdown2)

1.PVE(ProxmoxVirtualEnvironment)简介ProxmoxVirtualEnvironment基于debian,是一个完整的、开源的企业虚拟化服务器管理平台。它在一个平...

手把手教你!如何在 Linux 服务器中搭建 Sentinel 环境?

你在Linux服务器上搭建Sentinel环境时,是不是也遇到过各种报错,要么是启动失败,要么是配置后无法正常访问控制台?看着同事顺利搭建好,自己却一头雾水,别提多着急了!其实,很多互联网大厂...

Linux高性能服务器技术总结(linux高性能服务器编程怎么样)

1服务器简介服务器是提供计算服务的设备,由于服务器需要响应用户请求,因此在处理能力、稳定性、安全性、可扩展性、可管理性等方面提出了较高要求。随着虚拟化技术的进步,云服务器(ECS)已经快速的在...

从 0 到 1:使用 Ansible 自动化运维 Linux 服务器全流程

Ansible是一款强大的IT自动化工具,广泛用于服务器配置管理、软件部署和任务自动化。本文将带你从零开始,学习如何使用Ansible对Linux服务器进行自动化运维,涵盖Ansibl...

诡异!Win11 “此电脑” 莫名现 Linux 图标,啥情况?

我这电脑出了个怪事儿,“此电脑”下面莫名其妙多了个Linux的图标,可我压根儿就没装过Linux系统啊!琢磨了一下,估计是系统可选功能里那个“适用于Linux的Windows子系统”插件搞的鬼。实例系...

Linux基础运维篇:Linux 终端与 Shell 基础(第006课)

一、啥是终端?先搞懂「人和电脑对话的窗口」你可以把终端(Terminal)理解成一个「文字版的电脑操作台」。在Windows里,类似「命令提示符」或PowerShell;在Linux里,...

2025罗技大师系列智「简」大赛-罗技大师系列-MX KEYS S键盘评测

在2025罗技大师系列智「简」大赛中,MXKEYSS键盘凭借其卓越的设计与智能化体验,成为众多创作者的理想之选。本篇文章将深入评测这款键盘的核心功能、使用体验及创新亮点,帮助你了解它如何提升...

Linux编辑命令vim(linux使用vim编辑文件)

1、vi编辑器简介vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版,我们主要讲解的是vim编辑器。可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如:#定义别名...

全选是ctrl加什么?全选的快捷键是什么介绍

如何高效使用「全选」快捷键(Ctrl+A/A)提升工作效率在日常电脑操作中,"全选"是最基础却至关重要的功能之一。无论您是文字工作者、程序员还是普通用户,掌握全选快捷键都能极大提升操作...

Linux命令大全(linux命令大全书)

个人博客:https://chunyu.work/文章较长,可以收藏备用常用快捷键(1)ctrl+c:停止进程(2)ctrl+l:清屏(3)善于用tab键(4)上下键:查找执行过的命令文件目录类(...

Xshell是做什么用的?Xshell使用教程分享

Xshell是一款功能强大的终端模拟器,支持SSH1,SSH2,SFTP,TELNET,RLOGIN和SERIAL。通过提供业界先进的性能,Xshell包含了其他SSH客户端无法发现的功能和优势,作为...

Java 开发者线上问题排查常用的 15 个 Linux 命令

作为Java开发者,线上环境的问题排查是日常工作的重要组成部分。熟练掌握Linux命令能大幅提升排查效率,快速定位进程异常、日志错误、性能瓶颈等核心问题。本文结合Java应用特点,整理1...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

别再乱学 Linux 了!这 5 个核心技巧,让你效率飙升 10 倍!

在Linux学习的漫漫长路上,不少人犹如在黑暗中摸索的行者,四处碰壁,学习效果却不尽如人意。你是不是也曾在海量的Linux知识面前迷失方向,感觉自己投入了大量时间,却收效甚微?其实,掌握Li...

Linux终端神器Terminator时隔1年回归,2.1.5新版发布

IT之家5月23日消息,科技媒体linuxiac今天(5月23日)发布博文,报道称Terminator在沉寂一年后,最新发布了2.1.5版本,在分割终端窗格时支持克隆SSH...