Szukam odpowiednika Systrace w systemie Windows lub przynajmniej strace . Jestem świadomy istnienia StraceNT , ale zastanawiam się, czy istnieje więcej alternatyw. W szczególności szukam konkretnego sposobu programowego wymuszania zasad wywołań systemowych, chociaż może to nastąpić po fakcie, a nie aktywnie je zatrzymać.
Czy obecnie jest na to dobry sposób?
Odpowiedzi:
Najbliższy strace jest Logger.exe WinDbg: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v=vs.85).aspx
EDYCJA: Jest też wtyczka windbg: http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx
źródło
Kilka opcji:
Monitor procesu
Zobacz również ten artykuł o narzędziach wbudowanych w Windows 7:
Podstawowe narzędzia systemu operacyjnego
źródło
Narzędzie Dr. Memory ( http://drmemory.org ) jest dostarczane z narzędziem do śledzenia wywołań systemowych o nazwie drstrace, które zawiera listę wszystkich wywołań systemowych wykonywanych przez aplikację docelową wraz z ich argumentami: http://drmemory.org/strace_for_windows.html
Aby programowo wymuszać zasady wywołań systemowych, można użyć tych samych mechanizmów bazowych, co drstrace: platformy narzędziowej DynamoRIO ( http://dynamorio.org ) i biblioteki monitorowania wywołań systemowych DrSyscall ( http://drmemory.org/docs/page_drsyscall. html ). Korzystają one z technologii dynamicznego tłumaczenia binarnego, co wiąże się z pewnym narzutem (20% -30% w stanie ustalonym, ale znacznie wyższym podczas uruchamiania nowego kodu, takiego jak uruchamianie dużej aplikacji komputerowej), co może, ale nie musi, być odpowiednie do Twoich celów.
źródło
W tym celu bardzo przydatne jest API Monitor .
źródło
Tutaj jest dość ciekawy artykuł, nie wiem, czy trafi w cel, którego szukasz, ale myślę, że może się okazać, że poprowadzi Cię w wybranym kierunku.
http://jbremer.org/intercepting-system-calls-on-x86_64-windows/
źródło
strace jest dostępny w Cygwin w pakiecie cygwin . Możesz go pobrać z lustra Cygwin , na przykład:
http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz # | | | | # +-----------+----------+ +--+--+ # | | # mirror version
strace jest jednym z niewielu programów Cygwin, który nie opiera się na bibliotece DLL Cygwin, więc powinieneś być w stanie po prostu skopiować
strace.exe
tam, gdzie chcesz i używać go.źródło
strace notepad
. Uruchamia notatnik, ale nie przechwytuje żadnych wywołań systemowych.Istnieje kilka narzędzi zbudowanych wokół Xperf. Jest dość złożony, ale bardzo potężny - zobacz skróconą instrukcję obsługi . Na stronie Analiza wydajności systemu Windows znajdują się inne przydatne zasoby
źródło
strace obsługiwane przez Git , jak wspomniał Michael Fox. Może nie jest to przydatne w przypadku oprogramowania złożonego / Windows.
źródło
Możesz użyć monitora procesu napisanego przez Marka Russinovicha. Jest to fantastyczna mała aplikacja, która pozwoli ci podłączyć się do dowolnego uruchomionego procesu w systemie i zobaczyć wszystkie wywołania systemowe, które obecnie wykonuje.
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx
źródło