Toolverse
All skills

function-call-tracing

by gadievron

Instrument C/C++ with -finstrument-functions for execution tracing and Perfetto visualization

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
gadievron
Category
Security
Views
1

About this skill

Instrument C/C++ with -finstrument-functions for execution tracing and Perfetto visualization

How to use

  1. Skopiuj pliki trace_instrument.c i trace_to_perfetto.cpp do katalogu projektu.

  2. 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.

  3. 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.

  4. Zbuduj projekt poleceniem make (lub równoważnym dla twojego systemu budowania).

  5. 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.

  6. 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.

Related skills