7、进程通信、测试与x64寄存器介绍

进程通信、测试与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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值