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

429 Commits

Author SHA1 Message Date
Bartosz Taudul c5654c333a Process explicit context switch callstack samples. 2021-12-21 14:18:32 +01:00
Bartosz Taudul 3f1c540b3a Further split ProcessCallstackSampleImpl(). 2021-12-21 14:18:14 +01:00
Bartosz Taudul bbbae35925 Only identify samples when IdentifySamples is set. 2021-12-04 15:16:17 +01:00
Bartosz Taudul 4f735e1ae2 Extract callstack merging. 2021-11-27 15:06:58 +01:00
Bartosz Taudul a02575322f Collect child sample addresses. 2021-11-27 02:03:59 +01:00
Bartosz Taudul abdd6020ba No need to remember addresses of symbol code queries. 2021-11-25 22:35:43 +01:00
Bartosz Taudul ffa8bf4d75 Use table instead of map to track reentrant calls. 2021-11-14 16:42:11 +01:00
Bartosz Taudul cb004e9cc0 Sort source location zones only when needed. 2021-11-14 16:05:55 +01:00
Bartosz Taudul 864d7e4e47 Sort symbols list only when actually needed. 2021-11-14 13:05:05 +01:00
Bartosz Taudul b978a7c652 Sort plot data only when needed (i.e. to draw). 2021-11-14 13:01:27 +01:00
Bartosz Taudul d8d6423266 Context switch samples counting. 2021-11-13 02:47:39 +01:00
Bartosz Taudul 745b795d50 Detect context switch callstack samples.
Context switch callstack samples are not included in the sampling data
statistics (as these don't represent random sampling), but are rather put into
a separate dedicated data structure.

For this to work, a complete context switch data has to be available for the
callstack timestamp. There is no guarantee it will be present at the time it
is needed, so a second structure is added to allow postponing qualification of
callstacks.
2021-11-13 02:40:32 +01:00
Bartosz Taudul 5b799e0e45 Monitor when new context switch data is received. 2021-11-13 02:38:33 +01:00
Bartosz Taudul 00834ed32b No need to pass time and callstack. 2021-11-13 02:26:11 +01:00
Bartosz Taudul 0075050679 Allow checking if thread is a fiber. 2021-11-06 19:02:02 +01:00
Bartosz Taudul 3ede2a1345 Explicit tracking of fiber state in ThreadData.
This replaces the use of hard-to-track global state with well-defined accessor
functionality.
2021-11-06 18:55:29 +01:00
Bartosz Taudul 4c774130ee Allow direct switching from one fiber to another. 2021-11-04 17:51:32 +01:00
Bartosz Taudul fceb065329 Fiber name transport. 2021-11-03 18:57:30 +01:00
Bartosz Taudul 211b202d8e Process fiber entry and leave events. 2021-11-02 01:53:10 +01:00
Bartosz Taudul d522af99b9 Threads may be mapped to fibers. 2021-11-02 01:51:54 +01:00
Bartosz Taudul bb72bf10e9 Add fiber failures. 2021-11-02 01:47:31 +01:00
Bartosz Taudul 8f44f1c68b Store fiber state is ThreadData. 2021-11-02 01:45:01 +01:00
Bartosz Taudul dfb1ce64df Sample data inconsistency warning. 2021-10-16 16:15:19 +02:00
Bartosz Taudul d3905bd4bb Add context to zone text failures. 2021-10-10 14:14:33 +02:00
Bartosz Taudul 930ef77ea9 Add zone value failure context. 2021-10-10 14:12:13 +02:00
Bartosz Taudul 9300934fa5 Separate zone value and text failures. 2021-10-10 14:05:21 +02:00
Terence Rokop 66053e37f7 Add non-reentrant stats to SourceLocationZones
Extend SourceLocationZones with fields to track the count
and time of non-reentrant zone events -- that is, zone
events which were the only appearances (at the time) of
those zones on their threads' stacks.
2021-06-20 17:56:15 -07:00
Terence Rokop c90e39e06e Keep track of zone appearances on thread stacks
Start keeping track, using the previously-introduced
SrcLocCountMap, of the number of appearances of each zone
on each thread's stack at a given time.
2021-06-20 17:56:15 -07:00
Bartosz Taudul 5d86002f82 Calculate all CPU usage values in one go. 2021-06-20 14:19:18 +02:00
Bartosz Taudul ec3ee09f09 Add inline symbols map accessors. 2021-06-19 19:13:34 +02:00
Bartosz Taudul 654331a8c8 Create code address -> symbol map. 2021-06-19 19:07:57 +02:00
Bartosz Taudul 0fdd5ab01b Extract callstack sample processing implementation. 2021-06-15 01:59:49 +02:00
Bartosz Taudul 891e1ac280 Read combine samples flag on server. 2021-06-15 01:33:43 +02:00
Bartosz Taudul 3c31fb56a8 Allow range-limiting hardware samples. 2021-06-04 13:58:00 +02:00
Bartosz Taudul 227a8d1aee Process additional hardware sample data. 2021-05-20 02:19:11 +02:00
Bartosz Taudul 3a0e12043d Differentiate hw samples from code addresses. 2021-05-19 23:29:27 +02:00
Bartosz Taudul 3228e20c2e Add hardware samples accessors. 2021-05-19 23:05:50 +02:00
Bartosz Taudul 373a2b66c6 Collect hardware sample data. 2021-05-19 23:05:33 +02:00
Bartosz Taudul 64ed3d057d Add no-op dispatch of HW samples. 2021-05-19 21:09:55 +02:00
Bartosz Taudul 3d75bf653a Add interface for frame images dict building. 2021-05-15 15:50:20 +02:00
Bartosz Taudul db734e3e0a Parse custom location tags. 2021-05-11 01:37:59 +02:00
Bartosz Taudul e189f596ac Add no-statistics guards. 2021-04-18 22:59:10 +02:00
Bartosz Taudul 34b80ac52f Add child samples count getters. 2021-04-18 15:03:42 +02:00
Bartosz Taudul 4dc6222ba1 Add child samples data structure. 2021-04-18 14:42:35 +02:00
Bartosz Taudul 9b7f759347 Allow checking if disconnect was requested. 2021-04-01 20:16:29 +02:00
Bartosz Taudul 8dd92f32af Handle memory double allocation failure. 2021-03-09 22:19:42 +01:00
Bartosz Taudul 18e893752b Use SortedVector for source location zones. 2021-02-07 19:35:53 +01:00
Bartosz Taudul c220177828 Do postponed work only when needed. 2021-02-07 18:29:29 +01:00
Bartosz Taudul 9bb1d13afa Revert to non-shared mutex for data lock.
The main change here is that the UI will be unresponsive when a trace is being
saved when there's no capture being performed. Note that the UI was always
frozen during saving if the capture was live, due to how starvation is
prevented by the locks.
2021-02-07 18:11:36 +01:00
Bartosz Taudul ad2062fb40 Last-resort source code transfer from client to server. 2021-02-04 00:45:00 +01:00