Я ищу Windows-эквивалент Systrace или хотя бы strace . Я знаю о StraceNT , но мне интересно, есть ли еще альтернативы. В частности, я ищу конкретный способ программного обеспечения выполнения политик системных вызовов, хотя это может быть сделано постфактум, а не их активное прекращение.
Есть ли сейчас хороший способ сделать это?
Ответы:
WinDbg Logger.exe ближе всего к strace: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v=vs.85).aspx
РЕДАКТИРОВАТЬ: есть также wt windbg: http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx
источник
Несколько вариантов:
Монитор процесса
Также см. Эту статью об инструментах, встроенных в Windows 7:
Основные инструменты ОС
источник
Инструмент 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 , например:
http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz # | | | | # +-----------+----------+ +--+--+ # | | # mirror version
strace - одна из немногих программ Cygwin, которая не полагается на Cygwin DLL, поэтому вы можете просто скопировать
strace.exe
туда, где хотите, и использовать ее.источник
strace notepad
. Он запускает блокнот, но не фиксирует системные вызовы.На базе Xperf построено несколько инструментов. Это довольно сложно, но очень мощно - см. Краткое руководство . На странице анализа производительности Windows есть и другие полезные ресурсы.
источник
strace поддерживается Git , о чем упоминает Майкл Фокс. Может быть, бесполезен для сложного программного обеспечения / программного обеспечения Windows.
источник
Вы можете использовать монитор процессов, написанный Марком Руссиновичем. Это фантастическое маленькое приложение, которое позволит вам подключиться к любому запущенному процессу в системе и увидеть все системные вызовы, которые этот процесс в настоящее время выполняет.
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx
источник