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

1149 Commits

Author SHA1 Message Date
Bartosz Taudul a421083e58 Crash reports may be serialized. 2021-10-10 15:58:24 +02:00
Bartosz Taudul 082255f940 Messages may now use serialized queue. 2021-10-10 15:54:21 +02:00
Bartosz Taudul 20074e64f4 Fix processing of serialized zone color, value and validation. 2021-10-10 14:43:36 +02:00
Bartosz Taudul 909f5916b1 Use possibly-synchronous macros for C API zones. 2021-10-09 15:51:29 +02:00
Bartosz Taudul 2cea5bc5b2 Add C API async-or-sync queue macros. 2021-10-09 15:50:30 +02:00
Bartosz Taudul 5835011d0f Allow serialized zone validation. 2021-10-09 15:50:09 +02:00
Bartosz Taudul 7527f33d6c Handle serialized zones. 2021-10-09 15:31:45 +02:00
Bartosz Taudul 2eeade89ba Add macro for handling serial dequeue thread context checks. 2021-10-09 15:30:58 +02:00
Bartosz Taudul 2d5d4293a9 Move thread context check to a separate function. 2021-10-09 15:16:36 +02:00
Bartosz Taudul 13acec38f7 Use the possibly-synchronous macros in C++ zones. 2021-10-09 14:58:33 +02:00
Bartosz Taudul 6411b35d68 Provide macros for async-or-sync queue insertion.
If fibers are enabled, then some events which were traditionally stored in
async queues will have to be serialized. These macros provide the needed
infrastructure for this.
2021-10-09 14:55:32 +02:00
Bartosz Taudul 250ef2cf6e Change thread id size from 64 to 32 bits.
Both Windows and Linux use 32-bit thread identifiers. MacOS has a 64-bit
counter, but in practice it will never overflow during profiling and no false
aliasing will happen.

These changes are only done client-side and in the network protocol. The
server still uses 64-bit thread identifiers, to enable virtual threads, etc.
2021-10-08 00:42:52 +02:00
Bartosz Taudul 07bc665d8c Drop support for Cygwin. 2021-10-07 23:28:40 +02:00
Bartosz Taudul 12f693372a Cosmetics. 2021-10-07 23:28:31 +02:00
Simonas Kazlauskas 54ee3d8a94 Expose TRACY_MANUAL_LIFETIME APIs to C API clients
These are extremely useful for ecosystems such as Rust. There are a
couple of reasons why:

1. Rust strongly advises against relying on life before/after main, as
   it is difficult to reason about. Most users working in Rust will
   generally be quite surprised when encountering this concept.
2. Rust and its package manager makes it easy to use packages (crates)
   and somewhat less straightforward to consider the implications of
   including a dependency.

   In case of the `rust_tracy_client` set of packages, I currently have
   to warn throughout the documentation of the package that simply
   adding a dependency on the bindings package is sufficient to
   potentially accidentally broadcast a lot of information about the
   instrumented binary to the broader world. This seems like a major
   footgun given how easy is it to forget about having added this
   dependency.

Ability to manually manage the lifetime of the profiler would be a great
solution to these problems.
2021-09-18 14:54:00 +03:00
Michal Ziulek 789328f73d Undo my previous change.
-D_WIN32_WINNT=0x601 must be defined when building TracyClient.cpp for mingw-w64 on Windows. In that case definitions I've added are not needed.
2021-09-17 11:34:40 +02:00
Michal Ziulek ad97854f12 Fixed compile error when using zig cc. 2021-09-14 19:30:20 +02:00
Bartosz Taudul 924224501e Remove exception handler during profiler destruction. 2021-07-25 11:48:27 +02:00
Bartosz Taudul 61c9e8e6d8 Crash handler may be not installed. 2021-07-25 11:46:20 +02:00
Bartosz Taudul 54fa21bcbb Restore original signal handlers on profiler exit. 2021-07-25 11:40:22 +02:00
JIA-ss 5936e7c86c Multi Dll Proj will Crash, Under Unity (#244) 2021-07-25 11:28:42 +02:00
Bartosz Taudul 32b1e8dcb0 No kernel symbol on macos. 2021-06-20 19:35:05 +02:00
Bartosz Taudul c445c3805c Merge remote-tracking branch 'origin/master' into hw 2021-06-20 11:13:02 +02:00
Andrey Voroshilov 5670493757 Fix compilation warning 2021-06-19 23:26:03 -07:00
Bartosz Taudul ee13d3fa44 Retrieve address of symbol, not first instruction in line. 2021-06-19 19:52:33 +02:00
Bartosz Taudul fe7db6db4e Send symbol address in code information message. 2021-06-19 19:07:56 +02:00
Bartosz Taudul 3ce2f6209a Return symbol address in DecodeCodeAddress(). 2021-06-19 19:02:08 +02:00
Bartosz Taudul 7e1622083e Use monotonic raw clock for hardware sampling. 2021-06-19 13:40:31 +02:00
Bartosz Taudul 7086f2db65 Merge branch 'master' into hw 2021-06-17 01:37:10 +02:00
Bartosz Taudul fde62b4e6e Dynamically load some dbghelp functions. 2021-06-17 01:34:45 +02:00
Bartosz Taudul 50e0d4781b No kernel cache on cygwin. 2021-06-16 00:51:30 +02:00
Bartosz Taudul f1bf663160 Load kernel symbols. 2021-06-15 21:28:32 +02:00
Bartosz Taudul 2d5f6a411c Add windows kernel module discovery. 2021-06-15 21:28:32 +02:00
Bartosz Taudul 8fa9860764 Load windows device drivers list. 2021-06-15 21:28:31 +02:00
Bartosz Taudul bdb11f6e48 Use same kernel module name as on Linux. 2021-06-15 02:31:51 +02:00
Bartosz Taudul 6d03b18d1c Don't filter out kernel frames on win32. 2021-06-15 01:40:21 +02:00
Bartosz Taudul 697ec4372e Set combine samples flag on win32. 2021-06-15 01:32:18 +02:00
Bartosz Taudul 06dcdd342f Combine flags in welcome message. 2021-06-15 01:26:50 +02:00
Bartosz Taudul 004681b02b Merge remote-tracking branch 'origin/master' into hw 2021-06-14 23:54:34 +02:00
Bartosz Taudul d07db80b44 Fix rpmalloc init for shared libraries. 2021-06-13 12:15:36 +02:00
Bartosz Taudul 698e5f0210 Probe precise_ip for software sampling. 2021-06-13 01:21:09 +02:00
Bartosz Taudul 1f07a4ce35 One more query to acknowledge. 2021-06-13 01:08:04 +02:00
Bartosz Taudul b35dfe71d1 Send kernel symbol information. 2021-06-12 16:08:50 +02:00
Bartosz Taudul 4dc05ab858 Implement retrieval of kernel symbol names. 2021-06-12 15:27:35 +02:00
Bartosz Taudul 0168ab6535 Server queries must be always acknowledged. 2021-06-12 14:44:55 +02:00
Bartosz Taudul 0a954fda87 Capture kernel frames on Linux.
Garbage frames ("markers") have to be filtered out.
2021-06-12 14:36:07 +02:00
Bartosz Taudul ed50447f7a Use alias for s_ring[i]. 2021-06-12 13:13:53 +02:00
Bartosz Taudul f4c95eb021 Load linux kernel symbols list. 2021-06-11 01:31:02 +02:00
Bartosz Taudul ca2130d56c Process all data available in ring buffers. 2021-06-10 02:07:29 +02:00
Bartosz Taudul 5b7cd06840 Don't init rpmalloc, if we know it has been done already. 2021-06-10 01:48:11 +02:00