【发布时间】:2016-07-19 13:33:13
【问题描述】:
我正在使用 kext 在 OS X 中记录系统调用,如下所示:
int hook_read(struct proc *p, struct read_args *u, user_ssize_t *r) {
/* get som params here... */
printf("[IDEN] SYS_read called, %s, %d, %d, %d.\n", params);
return read(p, u, r);
}
这将记录到system.log。现在的问题是,如果printf 负载很高(调用了许多系统调用),system.log 中的输出通常格式不正确:
ID]SYS_readEN] callparam, 123, ed 123, 123 例如。字符串被加扰。如果我使用打印到串行端口的kprintf,则永远不会出现格式错误的日志。
非常感谢任何导致这种行为的想法!
【问题讨论】:
标签: linux macos kernel system-calls xnu