Bartosz Taudul
5309e6d94a
Broadcast client activity time.
2019-06-18 20:46:12 +02:00
Bartosz Taudul
aa5259b20a
Use the same port (8086) for both TCP and UDP traffic.
2019-06-18 20:28:03 +02:00
Bartosz Taudul
0e5a7263d9
Define broadcast message, add versioning.
2019-06-18 20:26:40 +02:00
Bartosz Taudul
0b394c3f53
Don't need to keep last broadcast time in Profiler class.
2019-06-18 20:15:09 +02:00
Bartosz Taudul
11dc8e67e5
Change broadcast rate from 5s to 3s.
2019-06-17 19:57:17 +02:00
Bartosz Taudul
6bf8081f5b
Remove debug leftovers.
2019-06-17 19:52:44 +02:00
Bartosz Taudul
de058d2a0d
Don't hardcode broadcast port.
2019-06-17 18:37:34 +02:00
Bartosz Taudul
1b3b3a94a2
Broadcast protocol version and process name.
2019-06-17 18:34:35 +02:00
Bartosz Taudul
0b9ef7e514
Disable broadcast if TRACY_NO_BROADCAST is defined.
2019-06-17 18:18:58 +02:00
Bartosz Taudul
e609c0fdce
UDP broadcast loop.
2019-06-17 02:25:09 +02:00
Bartosz Taudul
ab4e99229d
Indicate whether client is running on apple shitware.
2019-06-13 14:05:15 +02:00
Rokas K. (rku)
c4e05b6264
Merged in rokups/tracy/dllimport-cleanup (pull request #36 )
...
Clean up imported functions in multi-dll projects.
Approved-by: Till Rathmann <till.rathmann@gmx.de>
2019-06-11 15:04:34 +00:00
Bartosz Taudul
57b8b425ba
Discard send buffer data after disconnect.
2019-06-10 02:11:29 +02:00
Bartosz Taudul
80dff1ede1
Add connection id for on-demand mode.
...
Long-lived zones could send their end events without begin events in a
following scenario:
1. On-demand connection is made.
2. Zone begin is emitted, m_active is set to true.
3. Connection is terminated.
4. A new connection is made.
5. Zone end is emitted, because m_active is true.
To this point it was assumed that all zone end events will happen before
a new connection is made, but it's not necessarily true.
2019-06-09 17:15:47 +02:00
Bartosz Taudul
0db9c73d76
Immediately react to connection termination.
2019-06-09 16:51:39 +02:00
Bartosz Taudul
cc5bad294a
More strict memory ordering for on-demand connection status.
2019-06-09 16:48:00 +02:00
Bartosz Taudul
e2d42fae2f
We're done here, don't try to send termination request.
2019-06-09 16:25:52 +02:00
Bartosz Taudul
496f866add
Don't send data when connection is terminated.
...
There are only two cases for which HandleServerQuery() returns false.
Either data can't be read from the socket (which is checked by HasData()
call before calling HandleServerQuery()), or if the server sent
termination query. In both these cases there's no need to send data
anymore.
2019-06-09 16:19:40 +02:00
Bartosz Taudul
23e7850162
Make DequeueStatus enum class.
2019-06-09 16:14:30 +02:00
Bartosz Taudul
34d89d39a1
Prevent double freeing of socket.
2019-06-09 16:10:49 +02:00
Bartosz Taudul
139299389b
Add comments to client connection handling.
2019-06-09 16:10:49 +02:00
Bartosz Taudul
00a468162d
Fix signed/unsigned comparison.
2019-06-08 00:57:25 +02:00
Rokas Kupstys
9bd1037347
Clean up imported functions in multi-dll projects.
2019-06-07 19:50:08 +03:00
Bartosz Taudul
d271634a95
Keep one ETC1 compression buffer.
2019-06-07 01:29:24 +02:00
Bartosz Taudul
a654b642ef
Compress frame images to ETC1 before sending.
2019-06-07 00:31:51 +02:00
Bartosz Taudul
e5bb6011c5
Frame image transfer prototype.
2019-06-06 21:39:54 +02:00
Bartosz Taudul
b3812146cb
Fix atomics initialization.
2019-05-27 14:09:55 +02:00
Bartosz Taudul
efc54babe3
Transfer of colored messages.
2019-05-10 20:17:44 +02:00
Bartosz Taudul
9ec8704dad
Don't include LZ4 headers in tracy headers.
...
The LZ4 implementation is wrapped in tracy namespace, but it also adds
some defines, which may conflict with other LZ4 implementations.
2019-05-01 12:57:42 +02:00
Bartosz Taudul
302ad87686
Fix typo.
2019-03-21 22:06:37 +01:00
Bartosz Taudul
94ed1c637c
Try to check if cntcvt reads are monotonic.
...
https://lore.kernel.org/patchwork/patch/904607/
2019-03-21 21:59:51 +01:00
Bartosz Taudul
7f57b3dba9
Fallback to reading CLOCK_MONOTONIC_RAW, if available.
2019-03-21 21:49:23 +01:00
Bartosz Taudul
afe2fad1a7
Send native callstack before allocated one.
2019-03-05 19:18:43 +01:00
Bartosz Taudul
1bbf296351
Use fast callstack frame decoding to cut callstack.
2019-03-05 02:42:51 +01:00
Bartosz Taudul
b11f932078
Cut lua callstack at lua_pcall.
2019-03-05 02:42:51 +01:00
Bartosz Taudul
ec73178733
Move callstack cutting to a separate function.
2019-03-05 02:42:51 +01:00
Bartosz Taudul
d229c1bc1b
Send native callstack along with allocated callstack.
2019-03-05 02:42:50 +01:00
Bartosz Taudul
bef31ba073
Separate message for zone begin with alloc src loc and callstack.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
e3c31e4a4e
Send callstack alloc payload.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
b89db6e926
Don't send CPU usage data when there's no readings.
2019-02-25 15:11:35 +01:00
Bartosz Taudul
85f29a0f22
Collect system time before server connection is made.
2019-02-24 19:12:17 +01:00
Bartosz Taudul
9f4f5bcb63
CPU usage retrieval.
2019-02-21 22:45:53 +01:00
Bartosz Taudul
44009b6fda
Use mach_absolute_time() to get time on iOS.
2019-02-21 14:45:13 +01:00
Bartosz Taudul
e839a3153f
Just use getprogname().
2019-02-21 11:40:56 +01:00
Bartosz Taudul
c4d46f1c24
No libproc.h on iOS.
2019-02-21 11:33:45 +01:00
Till Rathmann
9d7c4a2861
Merged in tillrathmann/tracy (pull request #33 )
...
Fixed DLL support
2019-02-20 17:24:12 +00:00
Till Rathmann
29140afe0c
Fixed compiler warnings.
2019-02-20 17:50:49 +01:00
Till Rathmann
77abc3bffd
Fixed DLL support.
2019-02-20 16:15:13 +01:00
Bartosz Taudul
34d24b16bb
Retrieve memory size on apple.
2019-02-20 13:52:55 +01:00
Bartosz Taudul
9c966b6224
Process name retrieval on apple.
2019-02-20 13:13:29 +01:00
Bartosz Taudul
8f75839d66
Fix apple target detection.
2019-02-20 12:43:48 +01:00
Bartosz Taudul
5afadcb11d
Fix if condition.
2019-02-19 21:51:41 +01:00
Bartosz Taudul
ef5e30056e
Implement delayed initialization of the profiler.
...
Enabled on osx, ios.
2019-02-19 20:43:30 +01:00
Bartosz Taudul
3f914834b7
Hide rest of statics.
2019-02-19 19:33:37 +01:00
Bartosz Taudul
9fabafbeca
Fix DLL code.
2019-02-19 18:46:59 +01:00
Bartosz Taudul
2421e05c27
Prevent direct access to s_profiler.
2019-02-19 18:38:08 +01:00
Bartosz Taudul
d865d1cc87
Disallow direct access to s_token.
2019-02-19 18:27:00 +01:00
Bartosz Taudul
44753dd4ac
thread_local implies static.
2019-02-19 16:52:05 +01:00
Bartosz Taudul
c7e64bb8a8
Replace select() with poll().
2019-02-10 15:45:23 +01:00
Bartosz Taudul
653caf159f
Assign return value only once.
2019-01-29 22:21:01 +01:00
Bartosz Taudul
ddad475c19
Make it possible to store multiple frames at single frame address.
2019-01-20 19:11:48 +01:00
Bartosz Taudul
bf7cc0a0d5
Add missing header for PRIxMAX.
2019-01-20 17:17:09 +01:00
Rokas Kupstys
36c76456f7
Fix mistakes from MingW support commit.
2019-01-19 15:03:43 +02:00
Rokas Kupstys
8157e3a0b3
Fix builds with MingW.
2019-01-19 13:53:10 +02:00
Bartosz Taudul
92f3a4bba0
Add ZoneText and ZoneName to the C API.
2019-01-16 02:10:21 +01:00
Bartosz Taudul
b72d30af80
Allow disabling zone verification.
2019-01-15 18:59:05 +01:00
Bartosz Taudul
8e52ab318b
Send zone validation messages.
...
This is only performed for C API, as C++ scoped zones are always
properly ordered, due to RAII. With manual submission of zone begin and
end events there's no such guarantee.
2019-01-14 22:36:54 +01:00
Bartosz Taudul
970108fbbf
Track zone id for verification purposes.
2019-01-14 22:36:54 +01:00
Bartosz Taudul
1a8518dcc2
Allow filtering zones in on-demand mode.
2019-01-14 22:36:54 +01:00
Bartosz Taudul
1f0d1fdfdc
C API prototype.
2019-01-14 21:07:29 +01:00
Bartosz Taudul
070888f80d
Make it possible to have multiple vulkan contexts.
...
API change!
2019-01-10 17:11:17 +01:00
Bartosz Taudul
1733961885
Proper printf type for DWORDLONG on cygwin.
2018-12-29 01:00:14 +01:00
Miguel Fernandez
baa870fa8c
Moved NoMinMax before windows.h
2018-12-24 18:50:52 +00:00
Miguel Fernandez
7c164375a4
Moved NoMinMax inside _MSC_VER
2018-12-24 18:49:53 +00:00
Miguel Fernandez
51bdb004f9
Avoid conflicts with min/max macros
2018-12-24 15:26:50 +00:00
Bartosz Taudul
e9ce8fdfda
Flush queues when opening listen socket fails.
2018-12-21 18:14:30 +01:00
Bartosz Taudul
a4be9b51b0
Use common queue clearing function.
2018-12-21 18:12:26 +01:00
Bartosz Taudul
331693d7f1
Use proper pattern for acquiring serial lock.
...
This fixes a potential hang during crash handling. Also, lock duration
is reduced.
2018-12-21 18:11:09 +01:00
Rokas Kupstys
a931b9eaf1
HOST_NAME_MAX and LOGIN_NAME_MAX availability is not consistent across linux/android/macos platforms. However all of them do have versions of these macros with _POSIX_ prefix.
...
In addition to that hostname and user variables may be uninitialized in some configurations, however they are always used. Initializing these arrays fixes conditional depending on uninitialized memory warning uncovered by valgrind.
2018-12-18 17:19:03 +02:00
Bartosz Taudul
083320820f
OSX doesn't define HOST_NAME_MAX and LOGIN_NAME_MAX.
...
Fix based on patch from Jack Skalski.
2018-12-17 15:11:59 +01:00
Bartosz Taudul
a7e615d42e
Cosmetics.
2018-12-17 15:09:10 +01:00
Bartosz Taudul
f19b559f6e
InitOnceExecuteOnce requires targeting Windows Vista.
...
Cygwin fix.
2018-11-25 19:03:17 +01:00
Sherief Farouk
591f04ad0f
Renamed preprocessor #define for consistency.
2018-10-28 22:41:08 -07:00
Sherief Farouk
5110d55f17
Fix for using Tracy with multithreaded NT loader in Windows 10 RS5 (Issue #26 ) [Take 2].
2018-10-28 18:55:55 -07:00
Sherief Farouk
27447902ef
Fix for using Tracy with multithreaded NT loader in Windows 10 RS5 (Issue #26 ).
2018-10-27 18:13:59 -07:00
Bartosz Taudul
6be66d7a3c
Fix on-demand mode.
2018-09-09 19:44:41 +02:00
Bartosz Taudul
9211ce42da
Non-on-demand client is only able to handle one connection.
2018-09-09 19:42:06 +02:00
Bartosz Taudul
984a711666
Send protocol version to verify handshake.
2018-09-09 19:28:53 +02:00
Bartosz Taudul
db1d7d2c92
Free socket after disconnection.
2018-09-09 18:31:06 +02:00
Bartosz Taudul
270072b09e
Require shibboleth match at start of connection.
2018-09-09 18:26:53 +02:00
Bartosz Taudul
00da3ba6eb
SEGV_{BND,PKU}ERR might not be defined.
2018-08-27 14:45:07 +02:00
Bartosz Taudul
2ebe9b72d1
There's no getlogin_t() on android.
2018-08-27 13:59:19 +02:00
Bartosz Taudul
a1a9f6d610
Fix printf types.
2018-08-22 16:31:09 +02:00
Bartosz Taudul
8a78fcd2f9
Cut off Linux stack trace at sigreturn.
2018-08-21 01:53:00 +02:00
Bartosz Taudul
22346feea3
Fun fact: two threads can crash at the same time.
2018-08-21 01:45:33 +02:00
Bartosz Taudul
47943d6a86
Use proper type.
2018-08-21 01:24:00 +02:00
Bartosz Taudul
8c0ff67796
Cut windows crash call stack at the exception dispatcher.
2018-08-20 22:21:35 +02:00
Bartosz Taudul
d1adf9e8d6
Allow skipping functions on top of call stack.
...
Note that this is on-client performance intensive and shouldn't be used,
except in special situations, like processing crashes.
2018-08-20 22:20:44 +02:00
Bartosz Taudul
b371003336
In case of manual shutdown, don't wait for lock.
...
All threads are freezed at this point, nothing will release it.
2018-08-20 21:49:23 +02:00
Bartosz Taudul
401ebd6f3d
Use spin-lock in DequeueSerial.
...
A thread freezed during crash processing may hold the lock and never
release it. The old behavior would cause deadlock in such situation. The
new one can be modified to work. Also, we don't want to use timed mutex.
2018-08-20 21:40:13 +02:00