Solaris 模块调试器指南

mdb_get_pipe()

void mdb_get_pipe(mdb_pipe_t *p);

检索当前 dcmd 的管道输入缓冲区的内容。mdb_get_pipe() 函数供要占用完整的管道输入集但只执行一次的 dcmd 使用,以避免调试器针对每个管道输入元素重复调用 dcmd。在调用 mdb_get_pipe() 后,调试器不会再次在当前命令中调用 dcmd。例如,这可以用于构造对一组输入值进行排序的 dcmd。

管道内容放置在 dcmd 终止时对其进行垃圾收集的数组中,而数组指针存储在 p->pipe_data 中。 数组的长度放置在 p->pipe_len 中。如果未在管道的右侧执行 dcmd(即,未在其 flags 参数中设置 DCMD_PIPE 标志),则将 p->pipe_data 设置为 NULL,并将 p->pipe_len 设置为零。