调试器开发:用户输入处理、测试与重构
1. 用户输入处理
在处理用户输入时,我们需要一个本地变量来存储待执行的命令,无论该命令是直接来自用户输入还是读取历史记录。下面是相关代码:
else {
line_str = line;
add_history(line);
free(line);
}
if (!line_str.empty()) {
handle_command(pid, line_str);
}
若输入行不为空,我们将其内容保存到 line_str ,添加到历史记录并释放内存,最后处理该命令。
2. 命令格式与处理
命令格式类似GDB和LLDB调试器。例如,输入 continue 、 cont 或 c 可继续程序;输入 break set 0xcafecafe 可在指定地址设置断点。
为支持继续程序的功能,我们在 sdb/tools/sdb.cpp 中添加如下代码:
#include <vector>
namespace {
std::vector<std::string> split(std::string_view str, char delimiter);
bool is_prefix(std::strin
调试器开发:输入处理与重构
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



