1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Fix up baseAddr by walking back from symAddr

This commit is contained in:
Benoit Jacob 2022-05-03 20:09:18 +00:00
parent 0a432ed349
commit 9b6cb82eee

View File

@ -592,19 +592,23 @@ void SourceView::OpenSymbol( const char* fileName, int line, uint64_t baseAddr,
{
m_targetLine = line;
m_targetAddr = symAddr;
m_baseAddr = baseAddr;
m_baseAddr = baseAddr ? baseAddr : symAddr;
m_symAddr = symAddr;
m_sourceFiles.clear();
m_selectedAddresses.clear();
m_selectedAddresses.emplace( symAddr );
while (!worker.HasSymbolCode( m_baseAddr )) {
m_baseAddr -= 4;
}
ParseSource( fileName, worker, view );
Disassemble( baseAddr, worker );
Disassemble( m_baseAddr, worker );
SelectLine( line, &worker, true, symAddr );
SelectViewMode();
if( !worker.GetInlineSymbolList( baseAddr, m_codeLen ) ) m_calcInlineStats = false;
if( !worker.GetInlineSymbolList( m_baseAddr, m_codeLen ) ) m_calcInlineStats = false;
}
void SourceView::SelectViewMode()