Systrace для Windows
Я ищу эквивалент Windows Systrace или хотя бы strace. Я в курсе StraceNT, но интересно, есть ли еще альтернативы там. В частности, я ищу конкретный способ программного обеспечения политик системных вызовов, хотя это может быть после факта, а не активно останавливать их.
есть хороший способ сделать это в настоящее время?
8 ответов:
регистратор WinDbg.exe является самым близким к strace: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v=vs.85).aspx
EDIT: есть также вес windbg: http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx
память доктора (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, поэтому вы должны быть в состоянии просто скопировать
strace.exe
туда, где вы хотите его использовать.
есть несколько инструментов, все построены вокруг Xperf. Это довольно сложный, но очень мощный-увидеть краткое руководство. Есть и другие полезные ресурсы на Анализ Производительности Windows страница
вы можете использовать process monitor, написанный Марком Русиновичем. Это фантастическое небольшое приложение, которое позволит вам подключиться к любому запущенному процессу в системе и увидеть все системные вызовы, которые процесс в настоящее время делает.
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx