Commit Graph

1013 Commits

Author SHA1 Message Date
Bartosz Taudul
4d668741eb
Probe for acceptable precise_ip value.
This is stupid, but it's exactly what perf does... Sigh.
2021-05-21 01:33:37 +02:00
Bartosz Taudul
bcb7b94272
Tid is not needed. 2021-05-20 02:39:22 +02:00
Bartosz Taudul
f0f3babacf
Set correct message types. 2021-05-20 02:27:36 +02:00
Bartosz Taudul
5f3d1c0faf
Sample cache and branch stats. 2021-05-20 02:15:23 +02:00
Bartosz Taudul
faf87809d7
Reduce hw sampling rate. 2021-05-20 01:48:52 +02:00
Bartosz Taudul
741de5c8fb
Allow disabling cycle/retirement sampling. 2021-05-19 23:38:32 +02:00
Bartosz Taudul
2e38e70049
Reduce hardware sampling perdiod. Don't sample time. 2021-05-19 23:21:21 +02:00
Bartosz Taudul
101cdd9b4b
Don't send thread id for hw samples. 2021-05-19 22:52:13 +02:00
Bartosz Taudul
7794443453
Collect CPU cycles and instruction retirement events. 2021-05-19 21:09:55 +02:00
Bartosz Taudul
16101571e0
Close perf_event file descriptor on exec. 2021-05-19 21:09:55 +02:00
Bartosz Taudul
9cd1b26bc7
Keep count of ring buffers separate from number of CPUs. 2021-05-19 21:09:55 +02:00
Bartosz Taudul
b7d52d2eab
Store RingBuffer identifier. 2021-05-19 21:09:52 +02:00
Bartosz Taudul
42a272edf5
Allow control of sampling frequency. 2021-05-11 18:31:20 +02:00
Bartosz Taudul
a6c6943a6c
Check if GetThreadDescription() is supported.
This functionality is available since Win 10 1607.
2021-05-04 16:13:42 +02:00
Bartosz Taudul
eb7d220eea
Added support for TRACY_NO_FRAME_IMAGE define. 2021-04-29 20:55:16 +02:00
Bartosz Taudul
56f0bdd571
ARM doesn't follow x64 canonical address requirements. 2021-04-29 18:24:37 +02:00
Bartosz Taudul
505656df5a
Trace frame count may be zero. 2021-04-29 18:24:37 +02:00
JW
915693ac39 Use tracy_malloc rather than 'new' in ProfilerThreadDataKey
This codepath, involving a workaround for GCC < 8.4, called 'new' and
'delete' directly, which could cause infinite recursion when
user-provided versions of those functions were themselves using Tracy
functionality.

Now, this codepath uses Tracy's internal allocator.

See issues #194, #196
2021-04-12 10:06:35 -07:00
Bartosz Taudul
40efbe8529
Use rpmalloc for initialization-related allocations. 2021-04-10 13:02:32 +02:00
Bartosz Taudul
2bb5d126fd
rpmalloc_thread_initialize is called in RPMallocInit. 2021-04-10 12:55:00 +02:00
joshuakr
fa942d18fe Fix spacing 2021-04-09 15:35:44 -07:00
joshuakr
e845c23493 Removed duplicate function 2021-04-09 15:35:07 -07:00
joshuakr
3fad55d7bc Missed one 2021-04-09 15:34:21 -07:00
joshuakr
eac23cead2 PR feedback 2021-04-09 15:33:01 -07:00
Eric van Beurden
fc142b4f9c fixed a build break on AARCH64. 2021-04-09 13:50:35 -07:00
Eric van Beurden
00ac6d1d8e worked around Windows broken getenv() call. 2021-04-09 13:50:02 -07:00
Joshua Kriegshauser
76a02205f3 Fix centos shutdown crash 2021-04-09 11:58:34 -07:00
Bartosz Taudul
c288a7903b
Make {Startup,Shutdown}Profiler() signatures consistent. 2021-03-08 02:39:51 +01:00
Bartosz Taudul
99c6b91c0c
Fix sending GPU context name in on-demand mode. 2021-02-27 19:59:32 +01:00
Bartosz Taudul
c12de1b326
Merge pull request #178 from sideeffects/master
Add IsActive accessor to ScopedZone.
2021-02-16 20:52:29 +01:00
John Lynch
29af8352ee Add IsActive accessor to ScopedZone. 2021-02-12 20:30:43 -06:00
Bartosz Taudul
5ea71ea20d
Apparently program_invocation_short_name may be not defined. 2021-02-11 18:12:59 +01:00
Bartosz Taudul
26a8ec3909 Reuse existing variable. 2021-02-10 18:56:07 +01:00
Bartosz Taudul
5e48eebf26 Fix type in comparison. 2021-02-07 21:08:24 +01:00
Bartosz Taudul
9cfc36f92e Preserve valid order of server query acknowledgements. 2021-02-07 20:53:20 +01:00
Bartosz Taudul
99e68715c7 Include SIGABRT in crash handling. 2021-02-07 19:04:48 +01:00
Bartosz Taudul
ad2062fb40 Last-resort source code transfer from client to server. 2021-02-04 00:45:00 +01:00
Bartosz Taudul
3376620919 Move server query acknowledgement to a separate function. 2021-02-04 00:03:58 +01:00
Bartosz Taudul
f97223e394 Rename ParamPingback to more generic AckServerQueryNoop. 2021-02-04 00:03:58 +01:00
Bartosz Taudul
253c3ae4c8 Android applications spawn through a common executable.
/proc/self/exe -> /system/bin/app_process64
2021-02-01 15:26:34 +01:00
Bartosz Taudul
f89fd4ab04 Executable path discovery on BSDs. 2021-01-31 20:27:32 +01:00
Bartosz Taudul
a795c21962 Get process executable path on macos. 2021-01-31 19:34:39 +01:00
Bartosz Taudul
7f5810dfd6 Add GPU context name transfer to the protocol. 2021-01-31 18:46:42 +01:00
Bartosz Taudul
c92974d920 Send executable mtime in welcome message. 2021-01-31 17:45:31 +01:00
Bartosz Taudul
0ce113a96c Check mtime of profiled executable. 2021-01-31 17:45:31 +01:00
Bartosz Taudul
2890f24c97 Implement getting process executable path. 2021-01-31 17:37:54 +01:00
Bartosz Taudul
a3bfbab6bd Fix timer setup for fallback timer. 2021-01-29 11:20:23 +01:00
Bartosz Taudul
33ca38b581 Add a define for fallback timer usage. 2021-01-28 18:49:17 +01:00
Bartosz Taudul
b58358f81f Cosmetics. 2021-01-28 18:49:12 +01:00
Bartosz Taudul
6b276a1a64 Init rpmalloc thread-local data when sending messages.
There was a possibility of having uninitialized TLS block there, if the first
thing done in a thread was sending a message.
2021-01-27 02:14:23 +01:00
Bartosz Taudul
90de2d2f73 Support queuing serial items with callstack. 2021-01-15 22:11:34 +01:00
Bartosz Taudul
d4c0d4fbb7 Rename CallstackMemory to CallstackSerial. 2021-01-15 20:49:39 +01:00
Bartosz Taudul
5a8d30ddc3 Add transient OpenGL zones. 2021-01-15 20:13:09 +01:00
Bartosz Taudul
3d37c686cf Mark rprealloc as a part of Tracy API. 2020-12-27 14:11:45 +01:00
Bartosz Taudul
a467ef4c2b Expose rpmalloc init/finalize functions. 2020-12-26 14:57:54 +01:00
Bartosz Taudul
1a1df0229d Add missing include. 2020-12-26 14:48:31 +01:00
Bartosz Taudul
dab68b2f21 Manually initialize GUID structs. 2020-12-21 16:13:59 +01:00
Bartosz Taudul
063ad1f1d3 Check return value of EnableTraceEx2(). 2020-12-21 15:41:01 +01:00
Bartosz Taudul
2049332211 Broadcast to localhost if listening only on localhost. 2020-12-16 15:27:00 +01:00
AWoloszyn
064d264445 Fix switch for memory free.
Because of the layout difference between messageFat and
messageColorFat, this was referencing the text member
3-bytes offset from where it should have been.
2020-12-07 22:07:12 -05:00
Ben Vanik
7dfdad2e02 Adding ZoneColor to set a dynamic color override to an existing zone. 2020-11-27 20:12:24 +01:00
bjacob
dfdf70aea3
Fix shutdown with TRACY_NO_EXIT=1 on Android. (#134) 2020-11-26 20:33:54 +01:00
Benoit Jacob
fc8ef12a78 fix condition in LookUpMapping, and some cosmetic fixes 2020-11-23 11:56:08 -05:00
Benoit Jacob
d787636804 remove some useless inline keywords 2020-11-22 09:49:46 -05:00
bjacob
d05641d70c
Ensure that mappings have read permission before decoding symbols and reading code. (#129) 2020-11-21 21:05:39 +01:00
Bartosz Taudul
9facbe848c
Merge pull request #128 from philix/int_fixes
Fix integer type warnings
2020-11-19 17:17:08 +01:00
Felipe Oliveira Carvalho
c9865c5f95 Fix integer type warnings
This is necessary to compile Tracy-instrumented code in
codebases built with -Werror.
2020-11-19 16:36:01 +01:00
Bartosz Taudul
119e357dbf Improve parsing of kernel tracing data. 2020-11-19 11:37:05 +01:00
bjacob
3fe4e7c3a7
Fix sampling on Android with default su command. (#123) 2020-11-17 21:11:48 +01:00
Bartosz Taudul
09203905d6 Support memory pools in the C API. 2020-11-15 15:23:22 +01:00
Bartosz Taudul
e920b5cf64 Allow disabling call stack sampling.
Only on Windows for now.
2020-11-05 23:59:52 +01:00
Bartosz Taudul
4caaa325c2 Allow disabling context switch tracing.
Currently only on Windows.
2020-11-05 23:56:19 +01:00
Bartosz Taudul
a34abe646c Allow disabling vsync capture. 2020-11-05 23:44:28 +01:00
Bartosz Taudul
8b4e03486d Remove trailing whitespace. 2020-10-29 23:06:28 +01:00
Bartosz Taudul
e2515c6a99 Remove pre-C++11 compat macros from concurrentqueue. 2020-10-29 23:05:24 +01:00
Bartosz Taudul
3d2ff4ffd1 Add support for user-provided dbghelp locks. 2020-10-28 20:04:37 +01:00
Bartosz Taudul
d75503047c Test whole call stack for non-canonical pointers. 2020-10-06 18:27:14 +02:00
Bartosz Taudul
fc1b03d67d Remove non-canonical pointer at the end of sampled stack. 2020-10-02 22:14:33 +02:00
Bartosz Taudul
bd31e3d2d6 Send callstacks before sending events they belong to. 2020-09-29 16:40:19 +02:00
Bartosz Taudul
8eb51aa01d Get LFQ item before capturing callstack.
This is to ensure that thread local structures have been properly
initialized (lock-free queue buffers are thread local), as capturing
callstack involves allocating memory from rpmalloc, which must be
initialized in each thread before allocation.
2020-09-29 15:10:55 +02:00
Bartosz Taudul
24f25751ce Prevent move and copy of ScopedZone. 2020-09-24 01:31:24 +02:00
Bartosz Taudul
4db092437c Add support for custom allocator tracking to client. 2020-09-24 01:31:23 +02:00
Bartosz Taudul
593ce74042 Notify servers that client is no longer listening for connections.
This happens in these two cases:
- The client is exiting.
- A connection attempt is performed.

This message type is indicated by negative time value.
2020-09-20 22:20:33 +02:00
Bartosz Taudul
5c826c2723 Send signed active time in broadcast message.
This allows special treatment of negative values.
2020-09-20 22:15:10 +02:00
Bartosz Taudul
1e34b22a82 There's no QPC on non-windows systems. 2020-09-20 19:47:00 +02:00
Bartosz Taudul
24c834bf8c Don't set sample_max_stack with kernel headers < 4.8. 2020-09-15 17:38:35 +02:00
Niclas Olmenius
607f988d1a Remove unnecessary defines in concurrentqueue
Remove defines related to exceptions in
`tracy_concurrentqueue.h` as they are not used anywhere
2020-09-15 11:41:39 +02:00
Bartosz Taudul
4dae36cb73 Don't use EVENT_FILTER_EVENT_ID, etc with SDK < Win 8.1. 2020-09-06 14:02:18 +02:00
Bartosz Taudul
9e51e3fa85 Remove unused variable. 2020-09-06 14:02:12 +02:00
Bartosz Taudul
f3eabc28e2 Don't handle crashes, if there's no connection. 2020-08-28 17:21:52 +02:00
Bartosz Taudul
960c7fb1b9 Don't alias struct names in client and server. 2020-08-20 17:38:29 +02:00
Bartosz Taudul
411ca81786 Don't operate on reference. 2020-08-18 21:36:09 +02:00
Bartosz Taudul
818d20d273 Don't use image name as a replacement for source file.
Image name is now reported separately.
2020-08-18 20:34:11 +02:00
Bartosz Taudul
9ba7381030 Small speedup for ReadNumber(). 2020-08-18 20:07:15 +02:00
Bartosz Taudul
4d4b6c7ac9 Use memchr() to find newline in memory block. 2020-08-18 19:51:02 +02:00
Bartosz Taudul
c53a1f1dac Extend ScopedZone to allow allocated srcloc construction. 2020-08-16 15:52:27 +02:00
Bartosz Taudul
5239b706c3 Allow disabling code transfer. 2020-08-16 01:31:54 +02:00
Bartosz Taudul
518ce1e946 No need to store two same pointers. 2020-08-15 13:40:36 +02:00
Bartosz Taudul
28aae73f74 RingBuffer has const size, so use template.
This eliminates division.
2020-08-15 02:43:18 +02:00
Bartosz Taudul
16ad6ee2ac Tune number of ETW kernel buffers. 2020-08-13 15:26:36 +02:00