linux下codeserver离线远程调试C代码
linux下codeserver离线远程调试C代码
环境:OS:centos7。9。2009Minimal(无界面版本)cmake:2。8。12编译器:g4。8。5调试器:gdb4。8。5codeserver:v4。0。2(vscodev1。63。0)codeserver插件:msvscode。cpptools1。9。0linuxx64。vsixtwxs。cmake0。0。17。vsixmsvscode。cmaketools1。9。2。vsix
创建时间:20220224
修改时间:20220224前言
linux下使用gdb调试程序是一个基本操作。
本文介绍使用codeservergdb离线远程调试C的cmake工程。
最终效果:可以在没有GUI界面的centos上,在windows上以浏览器的方式调试centos上的C程序。1。下载和安装codeserverwgethttps:github。comcodercodeserverreleasesdownloadv4。0。2codeserver4。0。2amd64。rpm
镜像加速wgethttps:ghproxy。comhttps:github。comcodercodeserverreleasesdownloadv4。0。2codeserver4。0。2amd64。rpm
安装sudoyumivhcodeserver4。0。2amd64。rpm2。编写测试程序
目录结构:tree。。vscodelaunch。jsonCMakeLists。txtmyprint。cppmyprint。htest。cpp
test。cppincludemyprint。hintmain(){intnum1;myprintf(num);return0;}
myprint。hvoidmyprintf(intnum);
myprint。cppincludeiostreamvoidmyprintf(intnum){std::coutnum:numstd::endl;}
CMakeLists。txtcmakeminimumrequired(VERSION2。8。12)project(test)includedirectories(。)addexecutable({PROJECTNAME}test。cppmyprint。cpp)3。编译源码
注意:必须生成Debug模式,否则无法调试mkdirbuildcdbuildcmake。。DCMAKEBUILDTYPEDebugcmakebuild。configDebug
建议使用CMakeTools进行编译。
注意:离线下需要同时下载CMake和CMakeToolscodeserverinstallextensiontwxs。cmake0。0。17。vsixInstallingextensions。。。Extensiontwxs。cmake0。0。17。vsixwassuccessfullyinstalled。codeserverinstallextensionmsvscode。cmaketools1。9。2。vsixInstallingextensions。。。Extensionmsvscode。cmaketools1。9。2。vsixwassuccessfullyinstalled。
linux下验证应用程序是否为debug版本:readelfStestgrepdebug4。运行codeserver运行
默认使用配置文件:。configcodeserverconfig。yamlcodeserver
设置密码exportPASSWORD123456codeserverbindaddr0。0。0。0:8080
不设置密码codeserverauthnonebindaddr0。0。0。0:8080使用
浏览器中输入http:IP:8080即可访问5。codeserver配置C调试环境安装C插件
安装C调试插件CCextensionforVSCodecodeserverinstallextensionmsvscode。cpptools1。9。0linuxx64。vsixInstallingextensions。。。Extensionmsvscode。cpptools1。9。0linuxx64。vsixwassuccessfullyinstalled。安装cmake插件【可选,便于编译】
安装cmake插件CMakeTools
注意:离线下需要同时下载CMake和CMakeTools创建调试启动文件【Run(CtrlShiftD)】【createalaunch。jsonfile】【C(GDBLLDB)】
launch。json{version:0。2。0,configurations:〔{name:(gdb)启动,type:cppdbg,request:launch,program:{workspaceFolder}buildtest,args:〔〕,stopAtEntry:false,cwd:{workspaceFolder},environment:〔〕,externalConsole:false,MIMode:gdb,setupCommands:〔{description:为gdb启用整齐打印,text:enableprettyprinting,ignoreFailures:true}〕}〕}6。调试
设置断点,在codeserver中按F5进行调试。
codeserver左侧有变量、监视、调用堆栈、断点和Modules信息。
linuxgrep命令详解简介grep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜……
酒场陋习何时休?专家应借鉴传统礼仪文化建构社交道德新规范中新网济南8月10日电题:酒场陋习何时休?专家:应借鉴传统礼仪文化建构社交道德新规范作者赵晓阿里巴巴女员工被侵犯事件持续发酵,酒桌文化再次引起广泛关注。专家认为,酒……
洗衣机电源闪一下就灭,有时候就可以正常用是什么原因?洗衣机或者全自动洗衣机的电源开关由于环境湿度大,如果洗衣机间通风不良,最容易引起电源开关内部结构的触点受潮产生氧化,出现接触不良现象。见下图所示。是上图打圈的地方是电源开……
JAVA并发之AtomicInteger原理分析本篇文章我们以AtomicInteger为例子,主要讲解下CAS(CompareAndSwap)功能是如何在AtomicInteger中使用的,以及提供CAS功能的Unsafe……
10年前用激光治近视的那群人,现在还好吗?我就是那一批的。那时候花了6000左右、在广州做的、也是为了大学后当兵入伍做的。现在都依然清晰记得、整个手术时间大概30分钟。当我躺在手术台上的手、眼球被仪器吸附住(为了预防激……
Python中级精华并发之启动和停止线程目的:为了让代码能够并发执行,向创建线程并在核实的时候销毁它。方法:由于目的比较单纯,只是讲解基础的线程创建方法,所以可以直接使用threading库中的Threa……
电商区块链电竞欧洲袖珍国要做初创企业实验室重塑经济西班牙《阿贝赛报》网站近日报道称,欧洲小国安道尔开启了作为初创企业实验室的重塑之旅。虽然国土面积小,交通基础设施不足,但安道尔寻求通过行政和税收等方面的优势吸引创新人才,……
日均赚超4亿元!三大运营商晒成绩单文羊城晚报全媒体记者林曦实习生潘桂怡近日,中国移动发布了2021年年报。据年报显示,中国移动2021年全年营业收入达8482。58亿元,同比增长10。4;归母净利润为11……
涉足6家公司宁德时代入股车企有什么讲究?今年11月,宁德时代接连投资阿维塔科技、哪吒汽车两家车企,在行业内引起热议。细数宁德时代的投资版图,这家具有投资人思维的动力电池巨头似乎正在建立自己的宁王系。11月15日……
百度导航,高德导航,腾讯导航,北斗导航。你们用哪个最好?感谢您的阅读!这里有一个重点的内容:北斗导航有吗?我们在App中确实可以发现北斗导航地图,而且也好些人下载了北斗导航地图。甚至有些用户还在苹果手机中,下载了北斗导航地图。……
从火出圈的字节跳动工牌,到大厂的工牌文化近期,字节跳动的工牌火了。其实大厂工牌也不是第一次进入人们的视线了,脉脉上有一名认证为腾讯某员工的匿名网友就曾发言称:昨晚带孩子去吃海底捞,结账时问腾讯员工可有优惠。掏出工牌后……
拆完gps为什么还要屏蔽72小时?拆完GPS再屏蔽72小时是非常必要的,这是因为GPS定位器的安装绝对不会是单个的,更重要的是并不是所有的GPS定位器都是实时发送定位信息的,而是定时发送或者不定时发送的,所以必……