Function Call Tracing

Trace C/C++ function calls with per-thread logs and Perfetto JSON visualization.

Updated Mar 13, 2026
One-click install
npx skills add https://github.com/dawsonblock/OracleOS --skill function-call-tracing-dawsonblock
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Function Call Tracing
Source: https://github.com/dawsonblock/OracleOS/tree/main/Interface/Web/raptor-main/.claude/skills/crash-analysis/function-tracing
Command: npx skills add https://github.com/dawsonblock/OracleOS --skill function-call-tracing-dawsonblock

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Trace all function calls in C/C++ programs to diagnose performance issues, understand call patterns, and visualize execution with Perfetto.

Core Features & Use Cases

  • Instrumentation hooks for function entry/exit with per-thread logs.
  • Conversion to Perfetto Chrome JSON for UI-based analysis.
  • Use case: profile a multi-threaded C/C++ application to identify hot paths and visualize performance.

Quick Start

Build and run the instrumented binary to generate per-thread trace logs, then convert them to Perfetto JSON for visualization.

Frequently Asked Questions about Function Call Tracing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I trace function calls in C/C++ for Perfetto visualization?

Trace function calls in C/C++ by compiling with the -finstrument-functions flag to hook entry and exit, generating per-thread logs, then converting them to Perfetto JSON for visualization.

What is the best way to profile multi-threaded C/C++ applications?

The best way to profile multi-threaded C/C++ applications is using instrumentation hooks to generate per-thread trace logs, identifying hot paths by visualizing the execution flow in Perfetto.

Can I generate per-thread logs to analyze native application performance?

Yes, you can generate per-thread logs to analyze native application performance by applying instrumentation hooks to your C/C++ functions and recording entry and exit events for each thread.

Why do I need -finstrument-functions for multi-threading profiling?

You need -finstrument-functions for multi-threading profiling because it automatically injects callbacks on function entry and exit, allowing you to capture call patterns and diagnose performance issues accurately.

Does Perfetto support JSON conversion for visualizing C++ traces?

Yes, Perfetto supports visualizing C++ traces by converting generated per-thread function call logs into Perfetto Chrome JSON format for UI-based performance analysis.