Frame profiler
Go to file
Bartosz Taudul 6f9dfc8469
Use dladdr, not libbacktrace in fast callstack decode path.
DecodeCallstackPtrFast() may be called outside the symbol processing thread,
for example in the crash handler. Using the less-capable dladdr functionality
doesn't have a big impact here. Callstack decoding in this context is used to
remove the uninteresting top part of the callstack, so that the callstack ends
at the crashing function, and not in the crash handler. Even if this
functionality would be impacted by this change, the damage done is close to
none.

The other alternative is to use locking each time a libbacktrace is to be
used, which does not seem to be worthy to do, considering that the problem
only occurs in a very rare code path.

NB everything was working when it was first implemented, because back then the
callstack decoding was still performed on the main thread, and not on a
separate, dedicated one.
2022-10-08 13:22:56 +02:00
.github Limit number of make jobs. 2022-07-02 17:46:36 +02:00
.vscode Add test application build and run configuration. 2022-04-30 19:02:47 +02:00
capture Remove unused variable. 2022-09-29 21:02:05 +02:00
common Allow manual disabling of libtbb linkage. 2022-09-29 01:41:35 +02:00
csvexport Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00
doc Add symbol view screenshot. 2022-04-06 02:26:36 +02:00
examples Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00
extra Move TracyVersion.hpp to common. 2022-08-27 16:05:36 +02:00
getopt Move getopt to root 2020-07-11 12:26:01 +03:00
icon Minimize SVG files. 2022-04-16 00:13:10 +02:00
imgui Use 32-bit vertex indices on emscripten. 2022-10-02 18:24:26 +02:00
import-chrome Import frame messages (#459) 2022-09-02 19:44:37 +02:00
library Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00
manual Add interactive demo link. 2022-10-02 14:15:13 +02:00
nfd Update nativefiledialog-extended to 3311592. 2022-07-17 16:22:27 +02:00
profiler Bump available heap to 2GB. 2022-10-06 18:12:51 +02:00
public Use dladdr, not libbacktrace in fast callstack decode path. 2022-10-08 13:22:56 +02:00
server Enable file selector on emscripten. 2022-10-06 18:12:51 +02:00
test Fix test application flags. 2022-08-16 14:12:22 +02:00
update Move TracyVersion.hpp to common. 2022-08-27 16:05:36 +02:00
vcpkg Fail with error code if install_vcpkg_dependencies.bat commands fail 2022-06-25 17:52:42 +02:00
zstd Bump zstd to 1.5.2. 2022-03-18 01:52:11 +01:00
.gitignore Add Vcpkg manifest + MSBuild integration 2022-05-09 10:42:10 +02:00
AUTHORS Update AUTHORS. 2022-02-11 20:22:53 +01:00
CMakeLists.txt CMake: Fix invalid syntax 2022-09-03 17:13:31 +02:00
LICENSE Update copyright date in LICENSE. 2022-01-01 17:43:38 +01:00
meson_options.txt Fix Meson options to match build 2022-06-28 12:00:09 -05:00
meson.build fixed includes 2022-07-28 18:36:07 -04:00
NEWS Update NEWS. 2022-10-01 13:00:02 +02:00
README.md Add interactive demo link. 2022-10-02 14:15:13 +02:00
TODO Add TODO. 2020-01-08 18:16:17 +01:00
vcpkg.json Remove vcpkg builtin-baseline 2022-06-04 16:26:22 +02:00

Tracy Profiler

Sponsor

A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.

Tracy supports profiling CPU (Direct support is provided for C, C++, and Lua integration. At the same time, third-party bindings to many other languages exist on the internet, such as Rust, Zig, C#, OCaml, Odin, etc.), GPU (All major graphic APIs: OpenGL, Vulkan, Direct3D 11/12, OpenCL.), memory allocations, locks, context switches, automatically attribute screenshots to captured frames, and much more.

Introduction to Tracy Profiler v0.2
New features in Tracy Profiler v0.3
New features in Tracy Profiler v0.4
New features in Tracy Profiler v0.5
New features in Tracy Profiler v0.6
New features in Tracy Profiler v0.7
New features in Tracy Profiler v0.8