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-10-11 22:40:45 +0300
committerBartosz Taudul <wolf@nereid.pl>2022-10-11 22:40:45 +0300
commit4d0768ba9de086250d0d37423896f172dab93ee8 (patch)
tree5561e25b5635f52c1f5a7642e4285023befb9c1e
parentc9adadf86a6e430509f522df5ba32a94b1d969a3 (diff)
Replace code location queries with callstack frame ones.
-rw-r--r--server/TracyWorker.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp
index 79d8afdf..a0956738 100644
--- a/server/TracyWorker.cpp
+++ b/server/TracyWorker.cpp
@@ -4166,10 +4166,15 @@ void Worker::AddSymbolCode( uint64_t ptr, const char* data, size_t sz )
size_t cnt = cs_disasm( handle, (const uint8_t*)code, sz, ptr, 0, &insn );
if( cnt > 0 )
{
- m_pendingCodeInformation += cnt;
for( size_t i=0; i<cnt; i++ )
{
- Query( ServerQueryCodeLocation, insn[i].address );
+ const auto addr = insn[i].address;
+ const auto ptr = PackPointer( addr );
+ if( m_data.callstackFrameMap.find( ptr ) == m_data.callstackFrameMap.end() )
+ {
+ m_pendingCallstackFrames++;
+ Query( ServerQueryCallstackFrame, addr );
+ }
}
cs_free( insn, cnt );
}