网站首页 > 开源技术 正文
编译环境说明:
Ubuntu 18.04.5
1、安装必要构建工具
Bash
sudo apt install -y cmake git perl flex bison build-essential gcc gdb zip zlib1g-dev openssl libssl-dev libcurl4-openssl-dev psmisc libncurses5-dev curl libcurl4 libcurl4-openssl-dev wget lcov
如果仅仅为了构建,上面其实不需要安装那么多,我偷懒,一次性安装了,免得依赖时再安装麻烦。
2、安装vscode
能访问官方链接:
Bash
https://az764295.vo.msecnd.net/stable/c3f126316369cd610563c75b1b1725e0679adfb3/code_1.58.2-1626302803_amd64.deb
不能访问,替换成国内CDN域名:
https://vscode.cdn.azure.cn/stable/c3f126316369cd610563c75b1b1725e0679adfb3/code_1.58.2-1626302803_amd64.deb
安装
sudo dpkg -i code_1.58.2-1626302803_amd64.deb
3、接下来安装vscode开发C++应用的一些必要插件
我忘记了我都安装了什么插件,都是vscode提醒的时候,我就点击安装。
我已安装的插件列表如下:
好了,万事俱备,可以开始了。
4、打开Tars微服务项目
这里打开hello示例服务器端项目
cd /home/lirizhong/tars/src/tarscpp/tarscpp/example/hello/server
code .
项目目录如下:
5、配置launch.json
由于vscode已经安装了CMake Tools插件,所以打开项目后,在vscode底部左侧,就可以看到CMake Tools提供的一些构建、编译、运行和调试按钮。
如果运行或者调试的应用不依赖输入参数,可以直接点击“build”构建按钮进行构建,然后直接点击run(三角形图标)或者debug(虫子图标)。然后没然后,该怎么调试就怎么调试。
这里要说的是,如果调试的应用依赖输入参数,则需要额外的配置,即配置launch.json启动配置文件,完整的示例如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
// Resolved by CMake Tools:
"program": "${command:cmake.launchTargetPath}",
"args": ["--config=${workspaceFolder}/config/config.conf"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "$PATH:${command:cmake.getLaunchTargetDirectory}"
},
{
"name": "OTHER_VALUE",
"value": "Something something"
}
],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
这会vscode底层最左侧栏出现了刚刚配置的调试按钮(gdb) Launch:
点击看看调试效果吧:
好了,可视化调试是不是很爽,其实可视化调试也可以使用ddd等,我有段时间用过,后面主要都是gdb命令行了。
6、gdb命令行调试
进入执行文件目录:
cd /home/lirizhong/tars/src/tarscpp/tarscpp/example/hello/server/build/bin
gdb带参数调试运行:
gdb --args ./HelloServer --config=/home/lirizhong/tars/src/tarscpp/tarscpp/example/hello/server/config/config.conf
gdb不带参数调试运行:
gdb ./HelloServer
进入gdb后再设置参数:
(gdb)set args --config=/home/lirizhong/tars/src/tarscpp/tarscpp/example/hello/server/config/config.conf
下一个断点:
(gdb)b main:38
启动:
(gdb)r
停下来了:
Breakpoint 1, main (argc=2, argv=0x7fffffffd868) at /home/lirizhong/tars/src/tarscpp/tarscpp/example/hello/server/src/HelloServer.cpp:38
38 g_app.main(argc, argv);
查看值:
(gdb) p argc
$1 = 2
好咯,该怎么调试就怎么调试吧!
猜你喜欢
- 2024-10-14 2、Tars C++系列之快速入门(c++ tr())
- 2024-10-14 我为什么腾讯Tars微服务框架?(腾讯tars框架官网)
- 2024-10-14 腾讯微服务框架Tars及源码学习(腾讯微服务平台应用 服务)
- 2024-10-14 谷歌新机器人现身,人形两足酷似《星际穿越》的TARS
- 2024-10-14 「腾讯开源Tars」c++ RPC 框架 入门:介绍
- 2024-10-14 机械 竞技 热血 未来!吉林大学TARS-GO战队在机甲大师赛中纵情驰骋
- 2024-07-08 「腾讯开源Tars」c++ RPC 框架:服务发布
- 2024-07-08 7、Tars C++系列之依赖CMake(二)(cmake 依赖关系)
- 2024-07-08 7、Tars C++系列之依赖CMake(一)(commons-codec依赖)
- 2024-07-08 7、Tars C++系列之依赖CMake(三)(cmake 依赖另一个共享库)
你 发表评论:
欢迎- 05-15.net core集成vue
- 05-15Vue开发环境搭建
- 05-15创建Electron工程
- 05-15个人博客搭建保姆级教程3——hexo
- 05-15(实用派)Express之创建并配置运行vue项目
- 05-15package.json 与 package-lock.json 的关系
- 05-15deepin-linux的vue学习(二)git克隆开源vue项目和本地运行
- 05-15手把手教你搭建免费个人博客网站
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)