function-call-tracing
Śledź każde wywołanie funkcji w C/C++ i wizualizuj przepływ wykonania w Perfetto
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Narzędzie do instrumentacji kodu C/C++ umożliwiające śledzenie wszystkich wywołań funkcji z podziałem na wątki. Wykorzystuje flagę kompilatora -finstrument-functions do automatycznego rejestrowania wejść i wyjść z funkcji, a następnie konwertuje logi do formatu Chrome JSON kompatybilnego z Perfetto UI. Dzięki temu możesz wizualizować hierarchię wywołań, głębokość stosu i czasy wykonania każdej funkcji. Idealne do debugowania, profilowania wydajności i analizy złożonych przepływów sterowania w dużych projektach C/C++.
Jak używać
Skopiuj pliki trace_instrument.c i trace_to_perfetto.cpp do katalogu projektu.
Zbuduj bibliotekę instrumentacji, uruchamiając gcc -c -fPIC trace_instrument.c -o trace_instrument.o, a następnie gcc -shared trace_instrument.o -o libtrace.so -ldl -lpthread. Skompiluj też konwerter: g++ -O3 -std=c++17 trace_to_perfetto.cpp -o trace_to_perfetto.
Dodaj flagi do procesu budowania projektu: CFLAGS += -finstrument-functions -g oraz LDFLAGS += -L. -ltrace -ldl -lpthread. Jeśli używasz Makefile, umieść te zmienne w odpowiednich sekcjach.
Zbuduj projekt poleceniem make (lub równoważnym dla twojego systemu budowania).
Uruchom program z ustawionym LD_LIBRARY_PATH: export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH, następnie ./program. Program automatycznie wygeneruje pliki trace_*.log zawierające logi wywołań funkcji.
Konwertuj logi do formatu Perfetto poleceniem ./trace_to_perfetto trace_*.log -o trace.json, a następnie otwórz plik trace.json w przeglądarce na stronie ui.perfetto.dev, aby zobaczyć interaktywną wizualizację przepływu wykonania.
Podobne skille
youtube-watcher
autor: openclaw
obsidian
autor: gapmiss
windows-ui-automation
autor: martinholovsky
accessibility-compliance
autor: wshobson
brand-voice
autor: anthropics
payload
autor: payloadcms