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

调试工程的代码路径(通常不用做任何修改,在配置 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"
}
]
}
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 相同,建立预启动任务与调试任务的关系
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"
}
]
}
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 文件编写。
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"
}
2
3
4
如果响应结果返回 "调试程序[debug_kmyckj]未启动。" 的错误提示信息,请先到 VSCode 中启动调试任务(步骤2),如:
{
"code": -1,
"err_msg": "调试程序[debug_kmyckj]未启动。",
"data": []
}
2
3
4
5