1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00
Commit Graph

81 Commits

Author SHA1 Message Date
Bartosz Taudul ba6416f68c Merge pull request #497 from pshurgal/detailed_function_names
More detailed function names under Clang and GCC
2022-11-30 12:14:46 +01:00
Petr Shurgalin 5ddf62b54e Customizable source location data 2022-11-30 12:39:50 +02:00
ReplayCoding 9da24b713c Always fallback to using native thread name...
...even when TRACY_ENABLE is defined.
2022-11-29 12:02:42 -08:00
ReplayCoding 311ad7b061 Fix compile error when TRACY_NO_CRASH_HANDLER is enabled 2022-11-27 13:40:45 -08:00
Bartosz Taudul 89a55a2220 Remove semicolons from lockable macros. 2022-11-09 22:07:36 +01: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 6c74320b3e Merge pull request #488 from xxxbxxx/master
Added typed plots variants to the C API
2022-11-03 19:28:04 +01:00
Bartosz Taudul e7ac54fba6 Signals are only set if TRACY_NO_CRASH_HANDLER is not defined. 2022-11-03 17:21:09 +01:00
xxxbxxx a0cb8eb1d5 Added typed plots variants to the C API 2022-11-03 13:47:04 +01:00
Bartosz Taudul 970468f937 Override dlclose() to do nothing.
Provide a custom no-op implementation of dlclose(), in order to prevent shared
object data from disappearing from profiler view. The server makes queries for
program executable code, which has to be always available, otherwise wrong
data may be provided, or the program may crash, due to referencing no longer
mapped memory.

The dlclose() documentation states that the function internally decreases the
reference count, and only does unload the shared object when the count reaches
zero. There is no guarantee that the shared object data will be unloaded
immediately after any dlclose call originating from the program. This function
override exploits this fact.
2022-10-28 01:21:52 +02:00
Bartosz Taudul 898140fbda Don't read payload.extra, if not needed. 2022-10-28 00:34:46 +02:00
Bartosz Taudul 5a1f5371b7 Release 0.9.0. 2022-10-26 23:23:08 +02:00
Bartosz Taudul 86f88714ae Add compatibility with previous broadcast versions. 2022-10-26 23:23:07 +02:00
Bartosz Taudul b88ef29792 Make sure source file data is properly tracked. 2022-10-13 19:00:22 +02:00
Bartosz Taudul a85c0e18d2 Decouple source code retrieval from the profiler thread.
This will prevent apparent freezes of the profiler when debuginfod queries are
made.
2022-10-13 00:30:17 +02:00
Bartosz Taudul 6ca1c98655 Handle symbol thread crashes.
Should the symbol thread crash, mark that it is gone. This will allow the
profiler to transmit crash call stack, including resolved symbol names and
locations (which will resolve on the main profiler thread).
2022-10-13 00:30:17 +02:00
Bartosz Taudul 9657bdec72 Initialize rpmalloc properly in symbol worker. 2022-10-12 23:51:50 +02:00
Bartosz Taudul 4416dff342 Increase extra data in SymbolQueueItem to 64 bit. 2022-10-12 22:23:06 +02:00
Bartosz Taudul f64fb95a77 Fix preprocesor condition. 2022-10-12 22:05:19 +02:00
Bartosz Taudul 8ca4bc761d s_symbolTid is only available if crash handler is there. 2022-10-12 19:56:46 +02:00
Bartosz Taudul a235dca7ea Cleanup. 2022-10-12 01:42:22 +02:00
Bartosz Taudul 0b84b50d9f Remove locationCodeAddressList map from Worker.
Mapping of source code locations to code addresses is now performed
dynamically during disassembly in SourceView.
2022-10-12 00:13:07 +02:00
Bartosz Taudul 383ecb6a12 Remove CodeLocation query and CodeInformation response. 2022-10-11 22:56:23 +02:00
Bartosz Taudul f509ed1561 Include PID in broadcast message. 2022-10-09 21:54:54 +02:00
Bartosz Taudul f476e6a0f7 Ditto on windows. 2022-10-08 14:09:58 +02:00
Bartosz Taudul 2c289dbb84 Do not freeze symbol thread. 2022-10-08 14:08:31 +02:00
Bartosz Taudul 4399656e83 __GNUC__ version checks are not valid on clang. 2022-10-08 14:04:54 +02:00
Bartosz Taudul 2595f983e6 Include gcc patchlevel in compiler version report. 2022-10-08 14:04:54 +02:00
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
Bartosz Taudul 7552341ff0 Increase possible inline stack size to 64 elements. 2022-10-04 22:16:20 +02:00
Bartosz Taudul aa017e6a76 Merge pull request #468 from sherief/exception-handler-fix
Windows exception handler allows other handlers to be called.
2022-09-15 11:33:39 +02:00
Bartosz Taudul 0fc1c0f927 Make symbol thread exit status more robust. 2022-09-13 21:07:03 +02:00
Bartosz Taudul 048e20b68c Check for macro existence before checking its value. 2022-09-11 13:09:59 +02:00
Sherief Farouk e8b3d22d76 Windows exception handler allows other handlers to be called.
The profiled app might install handlers to track crashes, write minidumps,
etc. - this patch makes sure the app's exception handler is called when
a crash happens while profiling with Tracy.
2022-09-10 17:16:58 -07:00
Pilzschaf a55fd64a5b Added gpu zone begin non-alloc and callstack variants to the C API 2022-09-09 21:23:07 +02:00
Pilzschaf 823519a1de Fix indentation 2022-09-09 18:45:54 +02:00
Pilzschaf 41a1ac203b Added gpu calibration to the C API 2022-09-09 18:40:17 +02:00
Bartosz Taudul 2cc5eff9a2 Normalize symbol paths on libbacktrace systems. 2022-09-02 01:23:29 +02:00
Bartosz Taudul 8cc43284bd Add path normalization function. 2022-09-02 01:23:14 +02:00
Robert Adam ece8779362 Fix cpuid symbol redefinition on older GCC versions
Since commit 940f32c1a8 building the Tracy
library on Linux using a GCC version < 11 would result in compile errors
due to symbol redefinitions of __get_cpuid_max, __get_cpuid and
__get_cpuid_count.

This is because prior to GCC 11 the cpuid.h header file did not have any
include guards and thus including this header more than once would
produce the abovementioned errors.

To work around this issue, including cpuid.h has been wrapped into a
custom header file that itself uses include guards and thus shields
cpuid.h from being included multiple times.

Fixes #452
2022-08-31 17:59:46 +02:00
Bartosz Taudul be392a76fb Move TracyVersion.hpp to common. 2022-08-27 16:05:36 +02:00
hulakdar e35db2657b A bit more consistent usage of atomic 2022-08-26 13:25:58 +03:00
hulakdar 391cb4242e Fix d3d12 gpu zones for multithreaded use 2022-08-26 13:07:07 +03:00
Bartosz Taudul 72b7d0db5b Add user data pointer to parameter callback. 2022-08-26 00:46:01 +02:00
Bartosz Taudul 197007ab47 Keep a list of buffers left to handle.
Previously a bitmap of buffers was repeatedly scanned to see which buffers
still contain data. This process was needlessly wasting cycles (seen as a
hotspot when profiled) and worse yet, the workload increased with the number
of CPU cores (=> buffers used) to handle.

The new implementation instead maintains a list of buffer indices that have to
be handled. This list does not contain empty buffers, so each loop iteration
performs some work, instead of just spinning in search for buffers to handle.
2022-08-18 13:59:56 +02:00
Bartosz Taudul 940f32c1a8 Add include for cpuid. 2022-08-18 13:40:37 +02:00
Bartosz Taudul 07a56f1148 Load globals to local variables. 2022-08-18 01:08:22 +02:00
Bartosz Taudul 7df4aef122 Expose source callback registering through a macro. 2022-08-17 16:26:03 +02:00
Bartosz Taudul a237f108c7 Use source contents callback. 2022-08-17 16:04:20 +02:00
Bartosz Taudul ed7be2faaa Add source contents callback setup. 2022-08-17 16:04:18 +02:00