1
0
mirror of https://github.com/wolfpld/tracy synced 2025-05-01 05:03:53 +00:00

Collect jumps outside symbol.

This commit is contained in:
Bartosz Taudul 2020-04-04 13:51:55 +02:00
parent e02e595eec
commit 78a0773f38
2 changed files with 6 additions and 0 deletions

View File

@ -106,6 +106,7 @@ bool SourceView::Disassemble( uint64_t symAddr, const Worker& worker )
{ {
m_asm.clear(); m_asm.clear();
m_jumpTable.clear(); m_jumpTable.clear();
m_jumpOut.clear();
m_maxJumpLevel = 0; m_maxJumpLevel = 0;
if( symAddr == 0 ) return false; if( symAddr == 0 ) return false;
const auto arch = worker.GetCpuArch(); const auto arch = worker.GetCpuArch();
@ -197,6 +198,10 @@ bool SourceView::Disassemble( uint64_t symAddr, const Worker& worker )
it->second.source.emplace_back( op.address ); it->second.source.emplace_back( op.address );
} }
} }
else
{
m_jumpOut.emplace( op.address );
}
} }
m_asm.emplace_back( AsmLine { op.address, jumpAddr, op.mnemonic, op.op_str } ); m_asm.emplace_back( AsmLine { op.address, jumpAddr, op.mnemonic, op.op_str } );
} }

View File

@ -72,6 +72,7 @@ private:
std::vector<AsmLine> m_asm; std::vector<AsmLine> m_asm;
unordered_flat_map<uint64_t, JumpData> m_jumpTable; unordered_flat_map<uint64_t, JumpData> m_jumpTable;
unordered_flat_set<uint64_t> m_jumpOut;
int m_maxJumpLevel; int m_maxJumpLevel;
bool m_showJumps; bool m_showJumps;
}; };