Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Taudul <wolf@nereid.pl>2022-07-02 14:35:47 +0300
committerBartosz Taudul <wolf@nereid.pl>2022-07-02 14:37:04 +0300
commitc9f77ee5fa80187f98a405795d2fb4b00653add7 (patch)
tree9198ca0c1ea6f8148a486c68801e008b303b4930 /server/TracyView_ContextSwitch.cpp
parentb602d61944b5e5a9fe163c02d832205eabd83c68 (diff)
Move zone info UI out of View.
Diffstat (limited to 'server/TracyView_ContextSwitch.cpp')
-rw-r--r--server/TracyView_ContextSwitch.cpp130
1 files changed, 130 insertions, 0 deletions
diff --git a/server/TracyView_ContextSwitch.cpp b/server/TracyView_ContextSwitch.cpp
new file mode 100644
index 00000000..6840c9fd
--- /dev/null
+++ b/server/TracyView_ContextSwitch.cpp
@@ -0,0 +1,130 @@
+#include "TracyView.hpp"
+
+namespace tracy
+{
+
+const char* View::DecodeContextSwitchReasonCode( uint8_t reason )
+{
+ switch( reason )
+ {
+ case 0: return "Executive";
+ case 1: return "FreePage";
+ case 2: return "PageIn";
+ case 3: return "PoolAllocation";
+ case 4: return "DelayExecution";
+ case 5: return "Suspended";
+ case 6: return "UserRequest";
+ case 7: return "WrExecutive";
+ case 8: return "WrFreePage";
+ case 9: return "WrPageIn";
+ case 10: return "WrPoolAllocation";
+ case 11: return "WrDelayExecution";
+ case 12: return "WrSuspended";
+ case 13: return "WrUserRequest";
+ case 14: return "WrEventPair";
+ case 15: return "WrQueue";
+ case 16: return "WrLpcReceive";
+ case 17: return "WrLpcReply";
+ case 18: return "WrVirtualMemory";
+ case 19: return "WrPageOut";
+ case 20: return "WrRendezvous";
+ case 21: return "WrKeyedEvent";
+ case 22: return "WrTerminated";
+ case 23: return "WrProcessInSwap";
+ case 24: return "WrCpuRateControl";
+ case 25: return "WrCalloutStack";
+ case 26: return "WrKernel";
+ case 27: return "WrResource";
+ case 28: return "WrPushLock";
+ case 29: return "WrMutex";
+ case 30: return "WrQuantumEnd";
+ case 31: return "WrDispatchInt";
+ case 32: return "WrPreempted";
+ case 33: return "WrYieldExecution";
+ case 34: return "WrFastMutex";
+ case 35: return "WrGuardedMutex";
+ case 36: return "WrRundown";
+ case 37: return "WrAlertByThreadId";
+ case 38: return "WrDeferredPreempt";
+ case 39: return "WrPhysicalFault";
+ case 40: return "MaximumWaitReason";
+ default: return "unknown";
+ }
+}
+
+const char* View::DecodeContextSwitchReason( uint8_t reason )
+{
+ switch( reason )
+ {
+ case 0: return "(Thread is waiting for the scheduler)";
+ case 1: return "(Thread is waiting for a free virtual memory page)";
+ case 2: return "(Thread is waiting for a virtual memory page to arrive in memory)";
+ case 4: return "(Thread execution is delayed)";
+ case 5: return "(Thread execution is suspended)";
+ case 6: return "(Thread is waiting on object - WaitForSingleObject, etc.)";
+ case 7: return "(Thread is waiting for the scheduler)";
+ case 8: return "(Thread is waiting for a free virtual memory page)";
+ case 9: return "(Thread is waiting for a virtual memory page to arrive in memory)";
+ case 11: return "(Thread execution is delayed)";
+ case 12: return "(Thread execution is suspended)";
+ case 13: return "(Thread is waiting for window messages)";
+ case 15: return "(Thread is waiting on KQUEUE)";
+ case 24: return "(CPU rate limiting)";
+ case 34: return "(Waiting for a Fast Mutex)";
+ default: return "";
+ }
+}
+
+const char* View::DecodeContextSwitchStateCode( uint8_t state )
+{
+ switch( state )
+ {
+ case 0: return "Initialized";
+ case 1: return "Ready";
+ case 2: return "Running";
+ case 3: return "Standby";
+ case 4: return "Terminated";
+ case 5: return "Waiting";
+ case 6: return "Transition";
+ case 7: return "DeferredReady";
+ case 101: return "D (disk sleep)";
+ case 102: return "I (idle)";
+ case 103: return "R (running)";
+ case 104: return "S (sleeping)";
+ case 105: return "T (stopped)";
+ case 106: return "t (tracing stop)";
+ case 107: return "W";
+ case 108: return "X (dead)";
+ case 109: return "Z (zombie)";
+ case 110: return "P (parked)";
+ default: return "unknown";
+ }
+}
+
+const char* View::DecodeContextSwitchState( uint8_t state )
+{
+ switch( state )
+ {
+ case 0: return "(Thread has been initialized, but has not yet started)";
+ case 1: return "(Thread is waiting to use a processor because no processor is free. The thread is prepared to run on the next available processor)";
+ case 2: return "(Thread is currently using a processor)";
+ case 3: return "(Thread is about to use a processor)";
+ case 4: return "(Thread has finished executing and has exited)";
+ case 5: return "(Thread is not ready to use the processor because it is waiting for a peripheral operation to complete or a resource to become free)";
+ case 6: return "(Thread is waiting for a resource, other than the processor, before it can execute)";
+ case 7: return "(Thread has been selected to run on a specific processor but have not yet beed scheduled)";
+ case 101: return "(Uninterruptible sleep, usually IO)";
+ case 102: return "(Idle kernel thread)";
+ case 103: return "(Running or on run queue)";
+ case 104: return "(Interruptible sleep, waiting for an event to complete)";
+ case 105: return "(Stopped by job control signal)";
+ case 106: return "(Stopped by debugger during the tracing)";
+ case 107: return "(Paging)";
+ case 108: return "(Dead task is scheduling one last time)";
+ case 109: return "(Zombie process)";
+ case 110: return "(Parked)";
+ default: return "";
+ }
+}
+
+}