25 KiB
debugger_t
概述
调试器接口。
函数
debugger_attach 函数
- 函数功能:
附近到指定的代码片段。
- 函数原型:
ret_t debugger_attach (debugger_t* debugger, const char* lang, const char* code_id);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
lang | const char* | 代码的语言。 |
code_id | const char* | 代码的ID。 |
debugger_clear_break_points 函数
- 函数功能:
清除全部断点。
- 函数原型:
ret_t debugger_clear_break_points (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_continue 函数
- 函数功能:
执行到下一个断点。 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_continue (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_deinit 函数
- 函数功能:
释放资源。
- 函数原型:
ret_t debugger_deinit (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_dispatch_messages 函数
- 函数功能:
dispatch_messages(仅适用于客户端)
- 函数原型:
ret_t debugger_dispatch_messages (debugger_t* debugger, uint32_t timeout, uint32_t* ret_num);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
timeout | uint32_t | 超时时间(毫秒)。 |
ret_num | uint32_t* | 返回处理命令个数。 |
debugger_get_break_points 函数
- 函数功能:
获取断点列表。
- 函数原型:
ret_t debugger_get_break_points (debugger_t* debugger, binary_data_t* break_points);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
break_points | binary_data_t* | 断点列表(每行一个)。 |
debugger_get_callstack 函数
- 函数功能:
获取当前线程的callstack。
- 函数原型:
tk_object_t* debugger_get_callstack (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | tk_object_t* | 返回堆栈信息。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_code 函数
- 函数功能:
获取代码。
- 函数原型:
ret_t debugger_get_code (debugger_t* debugger, binary_data_t* code);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
code | binary_data_t* | 代码。 |
debugger_get_current_frame 函数
- 函数功能:
获取当前callstack的frame。 处于暂停状态才能执行本命令。
- 函数原型:
int32_t debugger_get_current_frame (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | int32_t | 成功返回frame序数(0表示当前),失败返回-1。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_current_thread_id 函数
- 函数功能:
获取当前线程 ID。 处于暂停状态才能执行本命令。
- 函数原型:
uint64_t debugger_get_current_thread_id (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | uint64_t | 成功返回线程 ID,失败返回 0。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_debuggers 函数
- 函数功能:
获取调试器列表。
- 函数原型:
ret_t debugger_get_debuggers (debugger_t* debugger, binary_data_t* debuggers);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debuggers | binary_data_t* | 调试器列表(每行一个)。 |
debugger_get_global 函数
- 函数功能:
获取全局对象。 处于暂停状态才能执行本命令。
返回数据结构请参考:https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Variables
- 函数原型:
tk_object_t* debugger_get_global (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | tk_object_t* | 返回全局对象。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_local 函数
- 函数功能:
获取局部变量对象。
返回数据结构请参考:https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Variables
处于暂停状态才能执行本命令。
- 函数原型:
tk_object_t* debugger_get_local (debugger_t* debugger, uint32_t frame_index);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | tk_object_t* | 返回局部变量对象。 |
debugger | debugger_t* | debugger对象。 |
frame_index | uint32_t | frame序数(0开始)。 |
debugger_get_self 函数
- 函数功能:
获取self对象。
返回数据结构请参考:https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Variables
处于暂停状态才能执行本命令。
- 函数原型:
tk_object_t* debugger_get_self (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | tk_object_t* | 返回self对象。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_state 函数
- 函数功能:
获取调试状态。
- 函数原型:
debugger_program_state_t debugger_get_state (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | debugger_program_state_t | 返回调试状态。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_threads 函数
- 函数功能:
获取线程(仅用于调试原生程序,脚本不支持)。
返回数据结构请参考: https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Threads
处于暂停状态才能执行本命令。
- 函数原型:
tk_object_t* debugger_get_threads (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | tk_object_t* | 返回全局对象。 |
debugger | debugger_t* | debugger对象。 |
debugger_get_var 函数
- 函数功能:
获取变量的详细信息。
返回数据结构请参考:https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Variables
处于暂停状态才能执行本命令。 可以为路径,如:
- a.name 为结构a下的成员name。
- a.names[1].first为结构a下的成员names数组中第二个元素下的first成员。
- 函数原型:
tk_object_t* debugger_get_var (debugger_t* debugger, const char* path);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | tk_object_t* | 返回全局对象。 |
debugger | debugger_t* | debugger对象。 |
path | const char* | 变量名或路径。为空或NULL时,返回全部变量。 |
debugger_is_paused 函数
- 函数功能:
查看当前是否处于暂停状态。
- 函数原型:
bool_t debugger_is_paused (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | bool_t | 返回TRUE表示处于暂停运行状态。 |
debugger | debugger_t* | debugger对象。 |
debugger_is_paused_or_running 函数
- 函数功能:
查看当前是否处于暂停运行状态。
- 函数原型:
bool_t debugger_is_paused_or_running (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | bool_t | 返回TRUE表示处于暂停运行状态。 |
debugger | debugger_t* | debugger对象。 |
debugger_is_running 函数
- 函数功能:
查看当前是否处于运行状态。
- 函数原型:
bool_t debugger_is_running (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | bool_t | 返回TRUE表示处于暂停运行状态。 |
debugger | debugger_t* | debugger对象。 |
debugger_launch 函数
- 函数功能:
执行代码。
- 函数原型:
ret_t debugger_launch (debugger_t* debugger, const char* lang, const binary_data_t* code);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
lang | const char* | 代码的语言。 |
code | const binary_data_t* | 代码。 |
debugger_launch_app 函数
- 函数功能:
执行程序(仅用于调试原生程序,脚本不支持)。
- 函数原型:
ret_t debugger_launch_app (debugger_t* debugger, const char* program, const char* work_dir, int argc, char** argv);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
program | const char* | 程序。 |
work_dir | const char* | 工作目录。 |
argc | int | 参数个数。 |
argv | char** | 参数列表。 |
debugger_load_config 函数
- 函数功能:
加载配置。
- 函数原型:
ret_t debugger_load_config (debugger_t* debugger, const char* filename);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger |
filename | const char* | 配置文件名。 |
debugger_lock 函数
- 函数功能:
锁定debugger对象。
- 函数原型:
ret_t debugger_lock (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_match 函数
- 函数功能:
检查code_id是否与当前debugger匹配。
- 函数原型:
bool_t debugger_match (debugger_t* debugger, const char* code_id);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | bool_t | 返回TRUE表示匹配到。 |
debugger | debugger_t* | debugger对象。 |
code_id | const char* | 代码ID。 |
debugger_pause 函数
- 函数功能:
暂停运行。 暂停后才能执行next/step_xxx等函数。
- 函数原型:
ret_t debugger_pause (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_remove_break_point 函数
- 函数功能:
清除断点。
- 函数原型:
ret_t debugger_remove_break_point (debugger_t* debugger, uint32_t line);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
line | uint32_t | 代码行号。 |
debugger_remove_break_point_ex 函数
- 函数功能:
清除断点。
- 函数原型:
ret_t debugger_remove_break_point_ex (debugger_t* debugger, const char* position);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
position | const char* | 位置(函数名或文件名:行号)。 |
debugger_restart 函数
- 函数功能:
重新运行。
- 函数原型:
ret_t debugger_restart (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_set_break_point 函数
- 函数功能:
设置断点。
- 函数原型:
ret_t debugger_set_break_point (debugger_t* debugger, uint32_t line);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
line | uint32_t | 代码行号。 |
debugger_set_break_point_ex 函数
- 函数功能:
设置断点。
- 函数原型:
ret_t debugger_set_break_point_ex (debugger_t* debugger, const char* position);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
position | const char* | 位置(函数名或文件名:行号)。 |
debugger_set_current_frame 函数
- 函数功能:
从callstack中选择当前的frame。 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_set_current_frame (debugger_t* debugger, uint32_t frame_index);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
frame_index | uint32_t | frame序数(0表示当前) |
debugger_set_current_thread_id 函数
- 函数功能:
设置当前处于哪个一个线程的上下文中。 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_set_current_thread_id (debugger_t* debugger, uint64_t thread_id);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
thread_id | uint64_t | 线程 id |
debugger_set_state 函数
- 函数功能:
设置状态。
- 函数原型:
ret_t debugger_set_state (debugger_t* debugger, debugger_program_state_t state);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
state | debugger_program_state_t | 状态。 |
debugger_step_in 函数
- 函数功能:
进入函数。 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_step_in (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_step_loop_over 函数
- 函数功能:
执行下一条语句(跳过循环) 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_step_loop_over (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_step_out 函数
- 函数功能:
执行到函数结束。 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_step_out (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_step_over 函数
- 函数功能:
执行到下一行代码。(不进入函数) 处于暂停状态才能执行本命令。
- 函数原型:
ret_t debugger_step_over (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_stop 函数
- 函数功能:
终止程序运行。
- 函数原型:
ret_t debugger_stop (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_unlock 函数
- 函数功能:
解锁debugger对象。
- 函数原型:
ret_t debugger_unlock (debugger_t* debugger);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
debugger_update_code 函数
- 函数功能:
更新代码。
- 函数原型:
ret_t debugger_update_code (debugger_t* debugger, const binary_data_t* code);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
code | const binary_data_t* | 代码。 |