Commit Graph

78 Commits

Author SHA1 Message Date
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
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
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
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
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
41a1ac203b Added gpu calibration to the C API 2022-09-09 18:40:17 +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
72b7d0db5b
Add user data pointer to parameter callback. 2022-08-26 00:46:01 +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
Bartosz Taudul
3dc542a464
Log invalid debuginfod queries.
Filename paths must be absolute, not relative.
2022-08-16 22:05:14 +02:00
Bartosz Taudul
d32dc47845
Add debug logging for debuginfod queries. 2022-08-16 22:05:08 +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
77e3a480a4
Properly terminate CPU model string. 2022-08-13 19:37:34 +02:00
Bartosz Taudul
bb22542a90
Decouple rpmalloc usage from TRACY_ENABLE flag. 2022-08-08 19:40:16 +02:00
Bartosz Taudul
810f1573ac
Use separate messages for transfer of different plot value types. 2022-07-24 13:00:36 +02:00
Bartosz Taudul
06c7984a16
Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00