mirror of
https://github.com/wolfpld/tracy
synced 2025-05-03 14:03:52 +00:00
Callstack frame queries.
This commit is contained in:
parent
4ba95145da
commit
203744cdd9
@ -23,6 +23,7 @@ enum ServerQuery : uint8_t
|
|||||||
ServerQueryThreadString,
|
ServerQueryThreadString,
|
||||||
ServerQuerySourceLocation,
|
ServerQuerySourceLocation,
|
||||||
ServerQueryPlotName,
|
ServerQueryPlotName,
|
||||||
|
ServerQueryCallstackFrame,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum { WelcomeMessageProgramNameSize = 64 };
|
enum { WelcomeMessageProgramNameSize = 64 };
|
||||||
|
@ -158,6 +158,16 @@ struct MemEvent
|
|||||||
enum { MemEventSize = sizeof( MemEvent ) };
|
enum { MemEventSize = sizeof( MemEvent ) };
|
||||||
static_assert( std::is_standard_layout<MemEvent>::value, "MemEvent is not standard layout" );
|
static_assert( std::is_standard_layout<MemEvent>::value, "MemEvent is not standard layout" );
|
||||||
|
|
||||||
|
|
||||||
|
struct CallstackFrame
|
||||||
|
{
|
||||||
|
uint64_t file;
|
||||||
|
StringIdx name;
|
||||||
|
uint32_t line;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum { CallstackFrameSize = sizeof( CallstackFrame ) };
|
||||||
|
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1333,6 +1333,15 @@ void Worker::AddCallstackPayload( uint64_t ptr, char* _data, size_t sz )
|
|||||||
idx = m_data.callstackPayload.size();
|
idx = m_data.callstackPayload.size();
|
||||||
m_data.callstackMap.emplace( arr, idx );
|
m_data.callstackMap.emplace( arr, idx );
|
||||||
m_data.callstackPayload.push_back( arr );
|
m_data.callstackPayload.push_back( arr );
|
||||||
|
|
||||||
|
for( auto& frame : *arr )
|
||||||
|
{
|
||||||
|
auto fit = m_data.callstackFrameMap.find( frame );
|
||||||
|
if( fit == m_data.callstackFrameMap.end() )
|
||||||
|
{
|
||||||
|
ServerQuery( ServerQueryCallstackFrame, frame );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -101,6 +101,7 @@ class Worker
|
|||||||
|
|
||||||
flat_hash_map<VarArray<uint64_t>*, uint32_t, VarArrayHasherPOT<uint64_t>, VarArrayComparator<uint64_t>> callstackMap;
|
flat_hash_map<VarArray<uint64_t>*, uint32_t, VarArrayHasherPOT<uint64_t>, VarArrayComparator<uint64_t>> callstackMap;
|
||||||
Vector<VarArray<uint64_t>*> callstackPayload;
|
Vector<VarArray<uint64_t>*> callstackPayload;
|
||||||
|
flat_hash_map<uint64_t, CallstackFrame*> callstackFrameMap;
|
||||||
|
|
||||||
std::map<uint32_t, LockMap> lockMap;
|
std::map<uint32_t, LockMap> lockMap;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user