# debugger_t
# 概述
调试器接口。
# 函数
函数名称 | 说明 |
---|---|
debugger_attach | 附近到指定的代码片段。 |
debugger_clear_break_points | 清除全部断点。 |
debugger_continue | 执行到下一个断点。 |
debugger_deinit | 释放资源。 |
debugger_dispatch_messages | dispatch_messages(仅适用于客户端) |
debugger_get_break_points | 获取断点列表。 |
debugger_get_callstack | 获取callstack。 |
debugger_get_code | 获取代码。 |
debugger_get_debuggers | 获取调试器列表。 |
debugger_get_global | 获取全局对象。 |
debugger_get_local | 获取局部变量对象。 |
debugger_get_self | 获取self对象。 |
debugger_get_state | 获取调试状态。 |
debugger_get_threads | 获取线程(仅用于调试原生程序,脚本不支持)。 |
debugger_get_var | 获取变量的详细信息。 |
debugger_is_paused | 查看当前是否处于暂停状态。 |
debugger_is_paused_or_running | 查看当前是否处于暂停运行状态。 |
debugger_is_running | 查看当前是否处于运行状态。 |
debugger_launch | 执行代码。 |
debugger_lock | 锁定debugger对象。 |
debugger_match | 检查code_id是否与当前debugger匹配。 |
debugger_pause | 暂停运行。 |
debugger_remove_break_point | 清除断点。 |
debugger_remove_break_point_ex | 清除断点。 |
debugger_restart | 重新运行。 |
debugger_set_break_point | 设置断点。 |
debugger_set_break_point_ex | 设置断点。 |
debugger_set_current_frame | 从callstack中选择当前的frame。 |
debugger_set_state | 设置状态。 |
debugger_step_in | 进入函数。 |
debugger_step_loop_over | 执行下一条语句(跳过循环) |
debugger_step_out | 执行到函数结束。 |
debugger_step_over | 执行到下一行代码。(不进入函数) |
debugger_stop | 终止程序运行。 |
debugger_unlock | 解锁debugger对象。 |
debugger_update_code | 更新代码。 |
# 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);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
# 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。
- 函数原型:
ret_t debugger_get_callstack (debugger_t* debugger, binary_data_t* callstack);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
debugger | debugger_t* | debugger对象。 |
callstack | binary_data_t* | callstack。 |
# 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_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_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_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* | 代码。 |