Bartosz Taudul
bf7402e8b0
Android callstack collection using _Unwind_Backtrace().
2018-06-21 17:07:21 +02:00
Bartosz Taudul
0c13fb818b
Initialize rpmalloc in Mem{Alloc,Free}Callstack().
...
rpmalloc may still be uninitialized here (i.e. if memory allocation/free
is performed before any other tracy operation that would initialize
thread_local data). Since memory allocations are using serialized queue
(which is not held in thread_local section) and obtaining callstack
involves memory allocation, we need to initialize rpmalloc manually.
This won't be a problem when support for zone callbacks becomes online,
because zones are stored in per-thread queues, which initialize
thread_local data before rpmalloc is needed in the Callstack() call.
2018-06-21 17:02:40 +02:00
Bartosz Taudul
937141b7e3
Include symbol address in location field on linux.
2018-06-21 13:14:13 +02:00
Bartosz Taudul
b3ca36f3f4
Include symbol offset in symbol name on linux.
2018-06-21 13:10:48 +02:00
Bartosz Taudul
909166daf7
Hide SendCallstackMemory().
2018-06-20 23:30:19 +02:00
Bartosz Taudul
8c46ad81d5
Extract common code.
2018-06-20 23:29:44 +02:00
Bartosz Taudul
32278364cd
Demangle symbol names.
2018-06-20 23:01:00 +02:00
Bartosz Taudul
c8f51d7f11
More involved callstack frame description on linux.
2018-06-20 22:54:42 +02:00
Bartosz Taudul
36d81412a0
Fix copy pasta.
2018-06-20 22:27:46 +02:00
Bartosz Taudul
601c80466c
Fix use-after-free.
2018-06-20 22:18:12 +02:00
Bartosz Taudul
5541cd6c97
Linux callstack retrieval.
2018-06-20 21:54:11 +02:00
Bartosz Taudul
b4b08a0b29
Windows header poisoning should be avoided only in headers.
...
This fixes cygwin.
2018-06-20 21:01:25 +02:00
Bartosz Taudul
45cec65eef
Don't assign const char ptr to char ptr.
2018-06-20 20:35:57 +02:00
Bartosz Taudul
e495747b88
Fix off-by-one.
2018-06-20 17:02:05 +02:00
Bartosz Taudul
88b1955a5a
Filename in callstack frame is not a persistent pointer.
2018-06-20 01:26:05 +02:00
Bartosz Taudul
5177a7b960
Callstack frame transfer.
2018-06-20 01:06:31 +02:00
Bartosz Taudul
359feae7ef
Symbol retrieval may fail.
2018-06-20 01:05:44 +02:00
Bartosz Taudul
4be2543b2f
Cygwin support for callstack tracing.
2018-06-19 19:49:21 +02:00
Bartosz Taudul
9b1fb01e16
Disable Callstack() call if there's no callstack support.
2018-06-19 19:38:30 +02:00
Bartosz Taudul
0a8cd73db7
Issue predictive callback payload transfer.
2018-06-19 19:31:16 +02:00
Bartosz Taudul
51043ebc47
Callstack payload transfer.
2018-06-19 19:31:16 +02:00
Bartosz Taudul
55e6a4a484
No return status is needed here.
2018-06-19 19:00:57 +02:00
Bartosz Taudul
d0d3545988
Optional sending of callstack ptr in memory events.
2018-06-19 18:51:21 +02:00
Bartosz Taudul
d2a98c3090
Configurable callstack depth.
2018-06-19 18:49:13 +02:00
Bartosz Taudul
ca499eefaf
Return typeless pointer.
2018-06-19 17:27:03 +02:00
Bartosz Taudul
827900969f
Make Callstack() static inline.
2018-06-19 17:23:50 +02:00
Bartosz Taudul
ca2cac9b99
Use proper type for pointer size.
2018-06-19 14:34:37 +02:00
Bartosz Taudul
4a01eb7fc4
Windows callstack inspection plumbing.
2018-06-19 01:17:19 +02:00
Bartosz Taudul
7a23f677dd
Vulkan and OpenGL must share idx pool.
2018-06-18 01:10:43 +02:00
Bartosz Taudul
9c11e0fc5b
Vulkan tracing.
2018-06-17 18:14:37 +02:00
Bartosz Taudul
3432c594a9
ImplicitProducer is private.
2018-05-08 16:27:52 +02:00
Bartosz Taudul
e2534e2bf6
Forward declare explicit and implicit producers.
2018-05-08 12:33:19 +02:00
Bartosz Taudul
5b6d9769af
Properly separate HW timer from MSVC rdtscp optimization.
2018-04-27 19:40:47 +02:00
Bartosz Taudul
237aee30a8
Test if HW timer can be used on arm.
2018-04-27 16:58:45 +02:00
Bartosz Taudul
6a2311a7b7
Arm64 also defines __ARM_ARCH.
2018-04-26 17:39:04 +02:00
Bartosz Taudul
a3f5003f88
Read time from timer register on armv6, armv7.
...
Same improvement as on aarch64.
2018-04-26 17:18:10 +02:00
Bartosz Taudul
69a50b04c1
Really don't care about cpu id.
2018-04-26 16:12:52 +02:00
Bartosz Taudul
1899066e36
Read time from timer register on arm64.
...
On ODROID C2 this change improves timer resolution from 250 ns to 41 ns.
2018-04-26 16:03:31 +02:00
Bartosz Taudul
3a20104882
No need for separate tracy_rdtscp() function.
2018-04-26 15:30:53 +02:00
Bartosz Taudul
8cc9464082
Use GetTime() in CalibrateTimer().
2018-04-26 15:29:09 +02:00
Bartosz Taudul
48665cc09b
s/TRACY_RDTSCP_SUPPORTED/TRACY_HW_TIMER/
2018-04-26 15:25:54 +02:00
Bartosz Taudul
4eb205ad18
Optimize FastVector for fast push_next() operation.
2018-04-14 17:12:41 +02:00
Bartosz Taudul
15219b1481
Support 4-byte size_t.
2018-04-14 16:08:39 +02:00
Bartosz Taudul
459890ef0e
Don't hold lock on serial queue during dequeue.
2018-04-14 15:46:11 +02:00
Bartosz Taudul
e1dc62cabe
Add fast vector swap.
2018-04-14 15:46:01 +02:00
Bartosz Taudul
7c4075c9ce
Fix MemRead() call.
2018-04-03 17:57:12 +02:00
Bartosz Taudul
3ea5600900
Fix UB, lose type safety.
2018-04-03 17:51:53 +02:00
Bartosz Taudul
9c403d9cc2
GetTime() calls also must be serialized.
2018-04-01 21:07:33 +02:00
Bartosz Taudul
794f199bdc
Serial queue dequeuing.
2018-04-01 20:04:35 +02:00
Bartosz Taudul
860e0e1809
Store memory operations in the serial queue.
2018-04-01 19:53:24 +02:00