进程通信、测试与x64寄存器介绍
1. 进程通信与错误处理
在创建通道时,我们将 close_on_exec 参数设置为 true 。若从读取管道接收到数据,我们会等待子进程终止,并输出给定消息的错误信息。当子进程启动出错时,父进程会抛出异常。我们使用 std::string 构造函数(接受起始指针和结束指针)来复制字符串数据,以构造 error::send 的参数。
添加管道后,当前测试套件中的所有测试都应能通过,因为 sdb::process 在启动失败时会正确抛出异常。接下来,我们将测试 attach 和 resume 函数,这需要从操作系统获取现有进程的信息。
2. Linux procfs
在测试 sdb::process::launch 时,我们要确保为尝试启动的程序创建了真实进程。而测试 attach 时,进程已存在,我们需检查是否成功附加到程序并暂停其执行。Linux 的进程文件系统(procfs)可实现这一需求,它能让我们通过文件查看系统中运行的进程。
procfs 是位于 /proc 的虚拟文件系统,提供了系统活动的丰富信息,以类似硬盘上普通文件的形式组织。我们关注的进程状态文件位于 /proc/<pid>/stat ,它能提供进程的高级信息,如执行的可执行文件名称、父进程的 PI
超级会员免费看
订阅专栏 解锁全文
3146

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



