diff --git a/client/TracyCallstack.cpp b/client/TracyCallstack.cpp index 66f556cc..cf0d5e24 100644 --- a/client/TracyCallstack.cpp +++ b/client/TracyCallstack.cpp @@ -256,7 +256,18 @@ const char* DecodeCallstackPtrFast( uint64_t ptr ) static const char* GetModuleName( uint64_t addr ) { - if( ( addr >> 63 ) != 0 ) return ""; + if( ( addr >> 63 ) != 0 ) + { + if( s_krnlCache ) + { + auto it = std::lower_bound( s_krnlCache, s_krnlCache + s_krnlCacheCnt, addr, []( const KernelDriver& lhs, const uint64_t& rhs ) { return lhs.addr > rhs; } ); + if( it != s_krnlCache + s_krnlCacheCnt ) + { + return it->mod; + } + } + return ""; + } #ifndef __CYGWIN__ for( auto& v : *s_modCache )