虽然 Windows 上有 strace 的命令行版本,但 Windows 上 strace 事实上的 GUI 等效项是 Sysinternals procmon。除了让您查看文件、注册表、网络和其他系统调用之外,procmon 还可以让您发送一个简单的字符串给它允许printf() 调试。
我可以在 unix 上进行等效的 API 调用,将任意消息发送到其 strace 输出吗?
答案1
跳出框框思考,您可以write()
使用不执行任何写入操作的文件描述符进行调用。例如,
int main()
{
int d = open("/dev/null", 0);
write(d, "hello world", 11);
}
我的系统上产生的 strace 输出的一部分是:
open("/dev/null", O_RDONLY) = 3
write(3, "hello world", 11) = -1 EBADF (Bad file descriptor)
这对于短消息来说已经足够了(较长的消息可能会被 strace 截断)。