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's wt: 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% в устойчивом состоянии, но намного выше при запуске нового кода, такого как запуск большого настольного приложения), который может или не подходит для ваших целей.
вот довольно интересная статья, я не знаю, попадает ли она в цель, которую вы ищете, но я думаю, что вы можете найти ее, ведущую вас в нужном направлении.
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, которая не полагается на библиотеку DLL Cygwin,
поэтому вы должны быть в состоянии просто скопировать strace.exe
туда, где вы хотите его использовать.
существует несколько инструментов, построенных вокруг Xperf. Он довольно сложный, но очень мощный-см. краткое руководство. Есть и другие полезные ресурсы на Анализ Производительности Windows страница
вы можете использовать process monitor, написанный Марком Русиновичем. Это фантастическое небольшое приложение, которое позволит вам прикрепить к любого запущенного процесса в системе и видеть все системные вызовы, которые в настоящее время делает.
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx