Commit Graph

46 Commits

Author SHA1 Message Date
Grégoire Roussel
9cf61d6597 [build-system] Migrate test/ directory to CMakeLists
- remove MakeFile, replaced with equivalent CMakeLists.txt
- add advanced option TRACY_DEMANGLE in client for CI testing
2024-07-03 14:05:49 +02:00
Martijn Courteaux
5d52427f4a Two minor fixes. 2024-06-07 11:36:47 +02:00
Bartosz Taudul
828e52f5c4
Merge pull request #754 from Chekov2k/python
Added basic Python Support
2024-03-23 11:57:02 +01:00
Arnim Balzer
d65d96191a
Added basic Python Support
Supported:
 - FrameMarks
 - ScopedZones
 - Memory allocations
 - Plots
 - ThreadNames
 - Messages
 - AppConfig

Not supported:
 - GPU
2024-03-23 06:45:12 +00:00
Bartosz Taudul
375f4526df
Set TRACY_VERSION_STRING directly in version.cmake. 2024-03-21 23:04:39 +01:00
Bartosz Taudul
061b990875
Move version.cmake to cmake/ subdirectory.
Co-authored-by: Tom Atkinson <tja.atkinson@gmail.com>
2024-03-21 23:04:37 +01:00
Bartosz Taudul
e7b9bffbbd
Rename TRACE_CLIENT_LIBUNWIND_BACKTRACE to TRACY_LIBUNWIND_BACKTRACE. 2023-12-21 14:07:44 +01:00
trodrigues
b835d73590 Add support for libbacktrace to detect new elfs have been dynamically loaded after backtrace_initialize() has been called, and consider them for symbol resolution 2023-12-05 20:09:11 -06:00
trodrigues
55f53b9979 remove option to enable image cache, use it for TRACY_HAS_CALLSTACK == 3 to obtain image path and addreses instead of dladdr() 2023-12-05 20:01:12 -06:00
Tiago Rodrigues
132419dba3 Add image cache to avoid calling dladdr() when doing offline symbol resolution. This cache can also be used in the runtime symbol resolution case to detect we should recreate "backtrace_state" when new images have been loaded 2023-11-29 13:23:58 -05:00
Bartosz Taudul
af73dba73e
Merge pull request #665 from tiago-rodrigues/trodrigues/offline_symbol_resolve
Add support for offline callstack symbol resolving
2023-11-27 16:53:22 +01:00
AMS21
d2325e49e7
Fix typo enfore -> enforce 2023-11-26 11:51:05 +00:00
Tiago Rodrigues
e5e84424f6 update cmake option description 2023-11-24 16:24:45 -05:00
Tiago Rodrigues
79618c5a1a Add support for using defining TRACY_SYMBOL_OFFLINE_RESOLVE to enable only the offline symbol resolving codepath 2023-11-19 06:32:17 -08:00
trodrigues
2988d0a136 rename libunwind option and add it to cmake 2023-11-10 16:17:39 -06:00
Keno Fischer
5417227e83 Use patchable rdtsc sequence to avoid slowdowns under rr
We (Julia) ship both support for using tracy to trace julia applications,
as well as using `rr` (https://github.com/rr-debugger/rr) for record-replay debugging.
After our most recent rebuild of tracy, users have been reporting signfificant performance
slowdowns when `rr` recording a session that happens to also load the tracy library
(even if tracing is not enabled). Upon further examination, the recompile happened
to trigger a protective heuristic that disabled rr's patching of tracy's use of
`rdtsc` because an earlier part of the same function happened to look like a
conditional branch into the patch region. See https://github.com/rr-debugger/rr/pull/3580
for details. To avoid this issue occurring again in future rebuilds of tracy,
adjust tracy's `rdtsc` sequence to be `nopl; rdtsc`, which (as of of the
linked PR) is a sequence that is guaranteed to bypass this heuristic
and not incur the additional overhead when run under rr.

This functionality is kept behind a compile-time flag `TRACY_PATCHABLE_NOPSLEDS`
in order to avoid polluting the instruction cache unnecessarily.
2023-09-20 20:21:40 -04:00
Christian Prather
a49af31188 Added cmake versioning and removed hardcoded share dir path 2023-07-17 10:55:46 -06:00
Andréa MACHIZAUD
cb30c4eb3e Fix missing TracyClient headers 2023-06-23 14:57:48 +02:00
Francisco Facioni
baf0e69a13 fix missing dependendency on install 2023-05-18 09:39:10 +01:00
Robert Adam
92137e8050 CMake: Fix invalid syntax
In 1f7656e845 I introduced a new option
but for setting its default value, I accidentally introduced invalid
cmake syntax that blows off as soon as BUILD_SHARED_LIBS is actually
defined to be non-empty.
2022-09-03 17:13:31 +02:00
Robert Adam
1f7656e845 CMake: Add option to explicitly set lib type
With this new option, it is now possible to explicitly build Tracy as a
shared or static library independent from the BUILD_SHARED_LIBS
variable, which always acts on a global scope (thus, affecting all CMake
targets).

If the options is not explicitly given, it will default to whatever
BUILD_SHARED_LIBS would indicate, leaving the default behavior
unchanged.
2022-08-31 18:06:51 +02:00
Robert Adam
0aeadb4c49 Use TRACY_PUBLIC_DIR throughout 2022-08-31 18:06:22 +02:00
Tiago Chaves
70026097cc
Update CMakeLists.txt 2022-08-04 08:51:08 -03:00
Bartosz Taudul
6233cf3fdf
Merge pull request #380 from Honeybunch/master
Slight tweak to get client library working with mingw
2022-05-14 12:48:09 +02:00
Mikael Simberg
57c13ed138
Remove duplicate TRACY_NO_FRAME_IMAGE CMake option 2022-05-11 09:39:42 +02:00
Mikael Simberg
aa089fb1d3
Remove stray comma from TRACY_NO_CRASH_HANDLER option 2022-05-10 15:49:59 +02:00
Honeybunch
45bd17b7e8 Slight tweak to get client library working with mingw 2022-05-03 18:31:49 -07:00
Michael Puskas
a5ea07f107 Fix build options, add TRACY_TIMER_FALLBACK option.
Renamed TRACY_NO_SYS_TRACE -> TRACY_NO_SYSTEM_TRACING to match the
build flag name. Unlike the meson logic, the CMake logic directly
maps the option name to the build flag that is injected. With the
mismatched name, the flag wasn't being properly applied.

Added TRACY_TIMER_FALLBACK option to expose the same-named flag.

Moved signal.h include to get sigaction definition that was missing when
TRACY_NO_CALLSTACK was defined.
2022-05-01 13:52:27 -07:00
Blake Taylor
8c5120ee5a Add flag to disable crash handler 2022-04-27 07:11:53 -07:00
David McCloskey
f11e71fd09 Adding tracy_no_sys_trace to enable MinGW builds which have an older version of envtprov.h 2022-04-12 12:07:21 -05:00
Clément Grégoire
f4f558bdc9 CMake: New description for TRACY_CALLSTACK 2022-02-23 14:29:20 +01:00
Clément Grégoire
d48fdafde7 Fix IPV4 -> IPv4 typo 2022-02-23 14:16:50 +01:00
Clément Grégoire
92a0feb821 CMake: Add the new TRACY_NO_CALLSTACK option 2022-02-23 14:09:04 +01:00
Clément Grégoire
2844fea858 CMake: Add missing options 2022-02-23 10:58:31 +01:00
Bartosz Taudul
72ae4d2ee4
Merge pull request #326 from Lectem/install_namepace
CMake install should use the Tracy:: namespace
2022-02-12 01:14:52 +01:00
Clément Grégoire
5a67fa99a7 Fix missing TracyUwp in the CMake headers install 2022-02-12 00:20:37 +01:00
Clément Grégoire
0b6c60de76 Since tracy provides the Tracy::TracyClient it should also install with that namespace 2022-02-11 23:58:47 +01:00
Honeybunch
12b0631f28 Merge branch 'master' of https://github.com/wolfpld/tracy 2022-01-12 14:59:04 -08:00
Honeybunch
a7fbfba27d Fixing install 2022-01-12 14:57:41 -08:00
Robert Adam
96141cdef0
CMakeLists: Fix typo
Fixes #298
2021-12-18 20:14:06 +01:00
Robert Adam
43303323a0
CMake: Mark include directories as SYSTEM
This usually prevents the compiler from emitting warnings about stuff it found in
the included files.
Since the CMakeLists.txt seems to be exclusively meant for code that is making use
of Tracy rather than Tracy itself using it to build, silencing the warnings should probably
be what most folks would want.

This will prevent things like #126
2021-12-17 17:23:16 +01:00
Honeybunch
ef795ba49d Exporting cmake targets for install 2021-12-06 08:58:25 -08:00
Lukas Berbuer
a7bbd51c61 Simplify CMake option definition 2021-08-01 13:14:32 +02:00
Lukas Berbuer
958386709f Add documentation for CMake integration 2021-08-01 12:54:31 +02:00
Lukas Berbuer
0fe755fc85 Add options to CMakeLists.txt
Major parts taken from https://github.com/Manu343726/tracy/blob/master/CMakeLists.txt
2021-08-01 12:26:42 +02:00
Timo Suoranta
629b6d88bb
Provide CMake TracyClient header only library 2021-05-30 12:45:16 +02:00