Systraceまたは少なくともstraceに相当する Windows を探しています。私は StraceNTを認識していますが、他に代替手段があるかどうか疑問に思っています。具体的には、システム コール ポリシーをプログラムで強制する特定の方法を探していますが、これは積極的に停止するのではなく、事後的に行うことができます。
現在これを行う良い方法はありますか?
WinDbgのLogger.exeはstraceに最も近いものです:https ://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/logger-and-logviewer
編集:windbgのwtもあります:https ://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/wt--trace-and-watch-data-
Dr. Memory ( http://drmemory.org ) ツールには、drstrace と呼ばれるシステム コール トレース ツールが付属しており、ターゲット アプリケーションによって行われたすべてのシステム コールとその引数が一覧表示されます: http://drmemory.org/strace_for_windows.html
システム コール ポリシーをプログラムで適用する場合、drstrace と同じ基礎となるエンジン、DynamoRIO ツール プラットフォーム ( http://dynamorio.org ) および DrSyscall システム コール監視ライブラリ ( http://drmemory.org/docs/page_drsyscall. html )。これらは動的なバイナリ変換テクノロジを使用するため、オーバーヘッドが発生します (定常状態では 20% ~ 30%、大きなデスクトップ アプリを起動するなどの新しいコードを実行する場合ははるかに高くなります)。これは、目的に適している場合と適していない場合があります。
API Monitorは、この目的に非常に役立ちます。
これは非常に興味深い記事です。探しているターゲットに当てはまるかどうかはわかりませんが、希望する方向に導くことができると思います。
http://jbremer.org/intercepting-system-calls-on-x86_64-windows/
strace は Cygwin のcygwin パッケージで入手できます。Cygwin mirrorからダウンロードできます。次に例を示します。
http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz
# | | | |
# +-----------+----------+ +--+--+
# | |
# mirror version
strace は、Cygwin DLL に依存しない数少ない Cygwin プログラムの 1 つであるため、必要なstrace.exe
場所にコピーして使用するだけでよいはずです。
Xperf を中心に構築されたツールがいくつかあります。これはかなり複雑ですが、非常に強力です。クイック スタート ガイドを参照してください。Windows パフォーマンス分析ページには、他にも役立つリソースがあります。