tracy -> Frame profiler

System Trace

  • win32
    LookupPrivilegeValue –> SE_SYSTEM_PROFILE_NAME ETW??
    ControlTrace/StartTrace/OpenTrace/CloseTrace
    RtlWalkFrameChain
  • linux
    perf_event
    syscall –> __NR_perf_event_open
    _Unwind_Backtrace
  • macOS
    未支持 kdebug?
    backtrace –> execinfo.h

Same as https://github.com/google/orbit
C/C++ Performance Profiler
win32 trace -> KrabsTracer.h
DiaSdk/krabsetw/PresentMon其中后两者有trace
https://github.com/google/orbit/tree/main/src/WindowsTracing
linux perf_event_open
https://github.com/google/orbit/tree/main/src/LinuxTracing

Same as https://github.com/microsoft/BPerf
Perf is a Cloud Profiling system used by Bing.com based on CoreCLR Profiling APIs & Event Tracing for Windows.

tracy是基于标记的 怎么标记需要自定义 需要在程序内执行
TracyAlloc标记Memory
TracyAllocS标记深度获取CallStack
FrameMarkStart标记Frame -> Pixel ??
TracyLockable标记Lock

Hook或者编译器指令插入

https://docs.microsoft.com/zh-cn/windows/win32/etw/system-providers
SYSTEM_SYSCALL_KW_GENERAL 提供有关系统调用的事件