Commit Graph

173 Commits

Author SHA1 Message Date
Tiago Rodrigues
38559172bb checkout elf.cpp as it looks like line ending were screwed up 2023-12-06 12:37:53 -05:00
Tiago Rodrigues
24b6c649d3 fix typo 2023-12-06 12:32:37 -05: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
trodrigues
a618b6e6f8 simplify return from tracy::FastVector iterator 2023-12-03 08:36:54 -06:00
Tiago Rodrigues
a9d039e081 move under the tracy namespace, remove commented out code 2023-12-03 09:23:03 -05: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
Tiago Rodrigues
a1ca8dd06a fixes according to review comments 2023-11-24 16:32:45 -05:00
trodrigues
301c9fb720 revert #ifdef of a lot of code by TRACY_SYMBOL_OFFLINE_RESOLVE, it now only force enables the offline symbol resolving codepath. 2023-11-19 06:32:17 -08: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
Tiago Rodrigues
c302b509fe fix formatting 2023-11-19 06:32:17 -08:00
Tiago Rodrigues
f4f75eac64 Add support for offline symbol resolving by setting the "TRACY_SYMBOL_OFFLINE_RESOLVE=1" env var
- Add a tool "tracy-edit" that allows loading a tracy capture, patching symbols and recompress the result
- Add offline symbol resolvers for linux (using addr2line) and windows (using dbghelper)
2023-11-19 06:32:16 -08:00
Damien Mabin
37f886dba4
Fix compilation on 32 bit android 2023-11-15 13:28:37 +02: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
95cb3e1f5a Add "TRACY_NO_SYS_TRACE" env var to allow force disabling system trace even if the underlying system supports it 2023-11-10 17:02:47 -05:00
Tiago Rodrigues
790d28911d Add env var "TRACY_NO_DBHELP_INIT_LOAD" to allow disabling dbghelp loading of DeviceDriver and ProcessModules at startup 2023-11-10 17:02:03 -05: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
0b21b2f3b4
Merge pull request #649 from michaeldleslie/support_qnx
Add basic QNX support
2023-10-30 23:44:58 +01:00
Ivan Molodetskikh
852a1a5f14 Add TracyIsStarted
When using TRACY_MANUAL_LIFETIME, calling most Tracy functions
before starting the profiler results in an assertion. Notably, even
TracyIsConnected is affected. There is, however, no function to check if
the profiler had already started. This commit adds such a function.
2023-10-25 14:56:29 +04:00
Michael Leslie
8263bfb829 clean up indentation 2023-10-24 17:44:46 -07:00
Michael Leslie
daba5ae1d8 add qnx support for instrumentation profiling only 2023-10-24 17:40:13 -07:00
Ivan Molodetskikh
41fc293043 Add GpuTimeSync event
Allows to resynchronise GPU and CPU timestamps during profiling.
2023-10-22 10:16:41 +04:00
Bartosz Taudul
3601576b3f
Add some more ogryzek device identifiers. 2023-10-20 01:32:05 +02:00
Ivan Molodetskikh
52caae3a51 Defer GPU contexts from the C API
Same as how the C++ API does it. Otherwise with on demand mode the
profiler never receives the GPU context info.
2023-10-19 15:33:06 +04:00
Marcell Kiss
69ba216245 correct load method Vk instance extension symbol 2023-10-17 23:23:13 +01:00
Bartosz Taudul
37aff70dfa
Release 0.10.0. 2023-10-16 20:59:38 +02:00
Bartosz Taudul
757362f782
Merge pull request #603 from slomp/slomp/d3d11-refactor
refactoring of the D3D11 back-end
2023-10-09 23:56:20 +02:00
Marcos Slomp
ded5b81fa4 eliminate "already defined" warning when passing TRACY_DELAYED_INIT to the compiler on Apple clients 2023-10-09 13:24:54 -07:00
Bartosz Taudul
da1bc2b60e
Merge pull request #597 from Keno/kf/noplrdtsc
Use patchable rdtsc sequence to avoid slowdowns under rr
2023-09-24 21:55:11 +02:00
Bartosz Taudul
855fd299ea
Merge pull request #600 from slomp/slomp/d3d12-refactor
Refactoring of the D3D12 back-end
2023-09-24 21:51:58 +02:00
Bartosz Taudul
60a3a85069
Merge pull request #624 from slomp/slomp/udp-broadcast-fix
Fixes around UDP broadcast
2023-09-21 20:29:32 +02:00
Marcos Slomp
83b52d9a20
fix socket reuse logic in UdpListen::Listen() 2023-09-20 21:47:44 -07: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
Marcos Slomp
996987b966 scoping 2023-09-11 12:59:48 -07:00
Marcos Slomp
7b2acd2c6d improved error reporting 2023-09-11 12:53:42 -07:00
Marcos Slomp
42b088d085 Collect pending timestamps upon context destruction 2023-09-11 12:46:03 -07:00
Marcos Slomp
2e3ae95882 reworking TracyD3D12 macros 2023-09-11 12:28:07 -07:00
Marcos Slomp
f9d36060df reworking clock calibration 2023-09-11 12:08:15 -07:00
Marcos Slomp
6454b0bd65 removing windows/com header bloat 2023-09-11 12:07:42 -07:00
Marcos Slomp
cf38d6a102 reworking context id initialization 2023-09-11 11:56:52 -07:00
Marcos Slomp
4f42a75df2 compressing redundant code 2023-09-11 11:53:33 -07:00
gan74
b979a3d26f Fixed Vulkan context running out of queries after 64k 2023-09-11 20:51:42 +02:00
gan74
2153973abe Fixed Vulkan query id generation not being thread safe 2023-09-11 15:12:58 +02:00
Bartosz Taudul
73da891805
Remove std:: qualifier from size_t. 2023-09-11 11:33:40 +02:00
xhe
4e771b2da0 adapt libbacktrace to musl
Signed-off-by: xhe <xw897002528@gmail.com>
2023-09-10 19:26:38 +08:00
Bartosz Taudul
e23aa01d51
Merge pull request #612 from slomp/slomp/d3d12-tabs-to-spaces
D3D12 back-end: converting tabs to spaces
2023-09-09 23:29:12 +02:00
xyz1001
30fb2b5f89
Fix two bugs (#615)
* Fix wrong check for wcstombs return value
* Fix memory leak when call GetThreadDescription
2023-09-08 14:02:55 +02:00
Vincent Loppin
98de2ed1c4 Remove warning (unused parameters) 2023-09-07 10:06:42 +02:00
Marcos Slomp
393ea938c9 converting tabs to spaces 2023-09-06 08:47:57 -07:00