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

35 Commits

Author SHA1 Message Date
Igor S. Gerasimov e9eecbb2c6 Replace #ifdef TRACT_HAS_CALLSTACK with constexpr call 2024-12-27 11:29:41 +01:00
JCash c5797e4e36 Added missing tracy:: 2024-12-01 16:19:27 +01:00
Bartosz Taudul f4df9013bb Add memory discard message.
This can be used to erase all allocations made within the named memory
pool. The usual use case would be for arena allocators, which allocate
by advancing a pointer and never have to free the memory. There is no
tracking of individual allocations and everything is freed frequently,
by reseting the pointer, for example once per frame.

Since this is used in special-purpose allocators, there is no support
for discarding the memory of the default memory pool.
2024-10-21 18:22:22 +02:00
Joshua Kriegshauser 66edfaec42 More PR feedback 2024-10-02 12:50:12 -07:00
Joshua Kriegshauser e1554a13e0 PR feedback 2024-10-02 11:21:34 -07:00
Joshua Kriegshauser 97a6a3dde7 always override unhandled exception filter 2024-10-02 11:21:34 -07:00
Joshua Kriegshauser cc860fe56a Reduce template code 2024-10-02 11:21:34 -07:00
Joshua Kriegshauser 201dcb6a8a Tweaks 2024-10-02 11:21:34 -07:00
Joshua Kriegshauser 5213c53bb0 Use SetUnhandledExceptionFilter instead of vectored exceptions 2024-10-02 11:21:34 -07:00
Joshua Kriegshauser 9378718231 Safe copy 2024-10-02 11:21:34 -07:00
Bartosz Taudul 37bfde5106 Add fiber enter API with group hint. 2024-08-04 00:08:18 +02:00
Ravbug 5454f7564c Windows for ARM support 2024-06-04 17:21:24 -07:00
Bartosz Taudul 1ff73edd20 Add linux kernel symbol code retrieval. 2024-05-26 20:49:43 +02:00
Jeff Burnett 18352366f7 Still use named mem pool if no callstacks
Forward MemAllocCallstackNamed() and MemFreeCallstackNamed() to
MemAllocNamed() and MemFreeNamed if callstack capture is off.
2024-03-22 09:50:05 -05:00
Bartosz Taudul ac031e64d6 Merge pull request #755 from Chekov2k/color
Add support to set color when creating a ScopedZone
2024-03-20 22:19:38 +01:00
Arnim Balzer 8df02e0bff Add support to set color when creating a ScopedZone 2024-03-18 08:56:06 +00:00
Gedalia Pasternak 9515a824fd This change makes the crash handler only install when tracy is connected.
This avoids the issue that an end user has their own crash handler which
gets ignored when tracy is on even if there is nothing to capture the crash.
2024-01-24 09:25:57 -05: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
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
Vincent Loppin 98de2ed1c4 Remove warning (unused parameters) 2023-09-07 10:06:42 +02:00
Björn Blissing e1b1fd72dc Wrap std::numeric_limits<T>::max() in parenthesis
The windows.h header file defines the macro max. If the max macro is include
it will lead to name collisions with the std::numeric_limits<T>::max() function.

One solution is to define NOMINMAX before the inclusion of windows.h.
However, that might be a demanding task for a large codebase. Defining the
NOMINMAX as global define may also break previous code.

Another to solution to the problem is to wrap the numeric_limits function in
parenthesis to instruct the compiler to treat it as a function and not a macro.

This commit wraps the std::numeric_limits<T>::max() calls in the public
interfacing header files, with parenthesis.
2023-08-17 10:03:52 +02:00
Bartosz Taudul e2e55a77b5 Add TracySetProgramName() macro to set broadcast contents. 2023-03-30 21:51:00 +02:00
Bartosz Taudul 5e2e5eeefb Add system power use tracking skeleton. 2023-03-09 22:31:31 +01:00
Bartosz Taudul eb7c13e7bb Fix message color component names in the protocol.
Red and blue channels were mislabeled. Otherwise, coding and decoding was
performed correctly, as far as the color channel order described in the manual
is followed by the user.

No change to the binary protocol was made.
2023-01-23 01:07:07 +01: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 4416dff342 Increase extra data in SymbolQueueItem to 64 bit. 2022-10-12 22:23:06 +02:00
Bartosz Taudul a235dca7ea Cleanup. 2022-10-12 01:42:22 +02:00
Bartosz Taudul 383ecb6a12 Remove CodeLocation query and CodeInformation response. 2022-10-11 22:56:23 +02:00
Bartosz Taudul 72b7d0db5b Add user data pointer to parameter callback. 2022-08-26 00:46:01 +02:00
Bartosz Taudul ed7be2faaa Add source contents callback setup. 2022-08-17 16:04:18 +02:00
Bartosz Taudul f4b0654fcd Allow setting plot color in the configuration message. 2022-07-24 13:32:21 +02:00
Bartosz Taudul 3f51409389 Add step and fill parameters to plot configuration. 2022-07-24 13:05:01 +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