Estou procurando um equivalente do Windows para Systrace ou pelo menos strace . Estou ciente do StraceNT , mas me perguntando se há mais alternativas por aí. Especificamente, estou procurando uma maneira específica de impor políticas de chamada do sistema de forma programática, embora isso possa ser depois do fato, em vez de interrompê-las ativamente.
Existe uma boa maneira de fazer isso atualmente?
Respostas:
Logger.exe do WinDbg é o mais próximo de strace: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/logger-and-logviewer
EDIT: Há também wt de windbg: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/wt--trace-and-watch-data-
fonte
Algumas opções:
Monitor de Processo
Além disso, consulte este artigo sobre ferramentas integradas ao Windows 7:
Ferramentas principais do sistema operacional
fonte
A ferramenta Dr. Memory ( http://drmemory.org ) vem com uma ferramenta de rastreamento de chamada de sistema chamada drstrace que lista todas as chamadas de sistema feitas por um aplicativo de destino junto com seus argumentos: http://drmemory.org/strace_for_windows.html
Para impor políticas de chamada de sistema de forma programática, você pode usar os mesmos engines subjacentes do drstrace: a plataforma de ferramentas DynamoRIO ( http://dynamorio.org ) e a biblioteca de monitoramento de chamadas de sistema DrSyscall ( http://drmemory.org/docs/page_drsyscall. html ). Eles usam a tecnologia de tradução binária dinâmica, que incorre em alguma sobrecarga (20% -30% em estado estacionário, mas muito maior ao executar um novo código, como iniciar um grande aplicativo de desktop), que pode ou não ser adequado para seus propósitos.
fonte
O API Monitor parece muito útil para esse propósito.
fonte
Aqui está um artigo muito interessante, não sei se atinge o alvo que você está procurando, mas acho que você pode achar que está levando você na direção que deseja.
http://jbremer.org/intercepting-system-calls-on-x86_64-windows/
fonte
strace está disponível no Cygwin no pacote cygwin . Você pode baixá-lo de um espelho Cygwin , por exemplo:
http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz # | | | | # +-----------+----------+ +--+--+ # | | # mirror version
strace é um dos poucos programas Cygwin que não depende do Cygwin DLL, então você deve ser capaz de apenas copiar
strace.exe
para onde quiser e usá-lo.fonte
strace notepad
. Ele inicia o bloco de notas, mas não captura nenhuma chamada do sistema.Existem várias ferramentas criadas em torno do Xperf. É bastante complexo, mas muito poderoso - consulte o guia de início rápido . Existem outros recursos úteis na página Análise de Desempenho do Windows
fonte
strace suportado por Git , como Michael Fox Mention Talvez não seja útil para software complexo / windows.
fonte
Você pode usar o monitor de processo escrito por Mark Russinovich. Este é um pequeno aplicativo fantástico que permitirá que você se conecte a qualquer processo em execução no sistema e veja todas as chamadas de sistema que o processo está fazendo atualmente.
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx
fonte