Commit Graph

17 Commits

Author SHA1 Message Date
Bartosz Taudul
53439ea5e2 Add external image cache machinery. 2026-03-31 01:18:50 +02:00
Clément Grégoire
aa68c31780 Add path to ImageEntry in prevision of replacing KernelDriver use + add DestroyImageEntry for ImageEntry cleanup 2025-10-24 12:50:26 +02:00
Clément Grégoire
12026dae5b Make ImageEntry m_startAddress/m_endAddress uint64_t as it will later be used in server, and thus not pointing to current process memory 2025-10-11 14:10:18 +02:00
Clément Grégoire
9665f7ac42 Move ImageEntry to header in prevision of sharing it with other CPP files in the future 2025-10-11 13:52:03 +02:00
Clément Grégoire
10c6e3dee1 Fix delay loading by not exporting variables
[`/DELAYLOAD`](https://learn.microsoft.com/en-us/cpp/build/reference/delayload-delay-load-import?view=msvc-170) only works with exported functions, not variables (as it patches thunks after the first load).
So instead of using exporting a pointer for `___tracy_RtlWalkFrameChain`, make it a function that will call said pointer. This only adds a `mov`+`jmp` instructions in optimized builds to the call, which is negligible compared to the actual cost of RtlWalkFrameChain. This also does not affect the reported callstack since it will use a `jmp` without touching the stack, so `___tracy_RtlWalkFrameChain` won't appear in the capture stacktrace.
2025-05-12 11:56:38 +02:00
Igor S. Gerasimov
a8f844b970 Use int32_t type for depth in client 2025-01-02 14:19:12 +01:00
Igor S. Gerasimov
a2fce55aee Rename has_stacktrace -> has_callstack 2024-12-27 11:43:00 +01:00
Igor S. Gerasimov
e9664a1c87 Introduce has_stacktrace function 2024-12-27 11:29:41 +01:00
Jeff Burnett
278330af5b Fix build warnings for TRACY_NO_CALLSTACK
Fix build warnings about undefined TRACY_HAS_CALLSTACK and an unused
argument for Callstack() when TRACY_NO_CALLSTACK is defined.
2024-03-22 09:50:05 -05:00
Bartosz Taudul
e7b9bffbbd Rename TRACE_CLIENT_LIBUNWIND_BACKTRACE to TRACY_LIBUNWIND_BACKTRACE. 2023-12-21 14:07:44 +01:00
Tiago Rodrigues
c373647dae fix coding style 2023-11-13 13:43:03 -05:00
trodrigues
2988d0a136 rename libunwind option and add it to cmake 2023-11-10 16:17:39 -06:00
Tiago Rodrigues
4c94b3eff7 Add support to use libunwind for backtrace capturing on linux platforms (which is ~ 4x faster than execinfo) 2023-11-10 17:00:39 -05:00
Bartosz Taudul
2c03306341 Always provide Callstack() implementation, even if dummy.
This fixes usage with TRACY_HAS_CALLSTACK undefined, allowing compilation of
otherwise unused functions, which are already protected from being called
through macro redirections.

See https://github.com/wolfpld/tracy/pull/492 for more information.
2022-11-09 21:55:41 +01:00
Bartosz Taudul
383ecb6a12 Remove CodeLocation query and CodeInformation response. 2022-10-11 22:56:23 +02:00
Bartosz Taudul
72ad40698b Move initialization of callstack structs to a thread.
Initializing structures for callstack processing (building memory map of the
process, gathering kernel symbols, etc) takes some time, which in some cases
may be significant.

Callstack queries are now handled on a separate thread. In such setup it no
longer makes sense to block main thread execution with this lengthy init
process.

All the heavy initialization phase has been now moved to this separate
processing thread. Some initial callstack queries may now not produce
responses as promptly as before, but this is only because the main thread is
able to start working earlier.

Some parts of the initialization process may be critical to do in the main
thread, for example because the function responsible for gathering callstacks
must be loaded first. This is done still on the main thread, in a new function
InitCallstackCritical().
2022-08-16 13:55:46 +02:00
Bartosz Taudul
06c7984a16 Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00