# 创建调试账号

在【我的系统】->【系统名称】->【项目成员】功能的 "成员列表" 中,选择要创建测试账号的项目组成员,点击操作列的【创建调试账号】,创建成功后,将会生成调试工程代码,如:

调试工程的代码路径(通常不用做任何修改,在配置 tasks.json 时,需参照调试工程的 makefile 文件):

# VSCode 中配置调试任务

在 VSCode 中远程调试服务,需要在开发服务器kedao安装目录下的 .vscode 配置目录中设置 launch.json 和 tasks.json 这两个文件。

# 设置 launch.json

在 kedao 根目录下的 .vscode 文件夹中找到 launch.json 文件,在 "configurations" 节点中增加预启动任务,如:

{
  "version": "0.2.0",
  "configurations": [
    {
      "preLaunchTask": "debug_kmyckj",
      "name": "debug_kmyckj",
      "type": "cppdbg",
      "request": "launch",
      "targetArchitecture": "x64",
      "program": "${workspaceFolder}/bin/debug_kmyckj",
      "args": [
        ">>",
        "stdout"
      ],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}/bin/",
      "environment": [],
      "internalConsoleOptions": "openOnSessionStart",
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "为 gdb 启用整齐打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "miDebuggerPath": "/usr/bin/gdb"
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

其中:

${workspaceFolder}:VSCode远程连接的目录,即 kedao 的根目录

preLaunchTask:为了便于记忆,设置为调试程序的名称 debug_kmyckj

program:调试程序的运行路径,默认在kedao的 bin 目录下

name:调试程序名称,与 preLaunchTask 相同,与 tasks.json 中任务的 lable 相同,建立预启动任务与调试任务的关系
1
2
3
4
5
6
7

# 设置 tasks.json

在 launch.json 同级的目录中找到 tasks.json 文件,在 "tasks" 节点中增加调试任务,如:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "debug_kmyckj",
            "type": "shell",
            "command": "g++",
            "args": [
                "--std=c++23",
                "${workspaceFolder}/src_c/kmyckj/prj_c/debugger/debug_kmyckj/debug_kmyckj.cpp",
                "-fPIC",
                "-o",
                "${workspaceFolder}/bin/debug_kmyckj",
                "-g",
                "-Wall",
                "-I/usr/include/",
                "-I${workspaceFolder}/src_c/include",                              // 公共 include
                "-I${workspaceFolder}/src_c/kmyckj/prj_c/debugger/debug_include",  // 系统下的 debug_include
                "-L/usr/lib64/",
                "-L${workspaceFolder}/bin/lib",
                "-ldl",
                "-lodbc",
                "-lkedao_utils",
                "-lstdc++fs",
                "-rdynamic",
                "-Wl,-rpath=./:./lib:'$$ORIGIN':'$$ORIGIN/lib'"
            ],

            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": true,
                "panel": "shared"
            },
            
            "problemMatcher": "$msCompile"
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

其中:

label:launch.json 文件预启动任务的 name 相同,两者通过此来建立关联关系;
args:g++的编译参数,参照调试工程的 makefile 文件编写。
1
2

# 调试服务

# 步骤1:打开调试界面

在【注册服务】功能界面的操作列中,点击【调试】按钮,打开【服务debug调试(C/C++)】调试界面;

在调试界面中,点击【增加测试用例】按钮,创建一个测试用例,如图:

# 步骤2:在 VSCode 中启动调试程序

在 VSCode 中切换到 Run and Debug 窗口,选择调试任务 debug_kmyckj,点击 运行 按钮,启动调试程序,如图:

# 步骤3:在调试界面增加测试用例

在【服务debug调试(C/C++)】中点击【增加测试用例】按钮,增加一个测试用例的tabs页面,如:

# 步骤4:编辑服务请求参数

根据调试的需求,编辑相应的请求参数。

# 步骤5:保存并调试

1、在 VSCode 的源代码中设置断点;

2、在【服务debug调试(C/C++)】中点击【保存并调试】按钮,将服务参数发送到开发服务器,调试程序接收到请求参数后,进入调试界面,如:

如果调试的时间比较长(超过65秒),调试结果返回服务超时的错误信息,不影响调试和服务逻辑,如:

{
	"code": -1,
	"err_msg": "timeout of 65000ms exceeded"
}
1
2
3
4

如果响应结果返回 "调试程序[debug_kmyckj]未启动。" 的错误提示信息,请先到 VSCode 中启动调试任务(步骤2),如:

{
	"code": -1,
	"err_msg": "调试程序[debug_kmyckj]未启动。",
	"data": []
}
1
2
3
4
5