# 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* 代码。