编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

3、Tars C++系列之调试Tars微服务应用

wxchong 2024-10-14 18:06:43 开源技术 14 ℃ 0 评论

编译环境说明:

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


好咯,该怎么调试就怎么调试吧!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表