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によって切り捨てられる可能性があります)。