mirror of
https://github.com/wolfpld/tracy
synced 2025-05-01 13:13:53 +00:00
Collect jumps outside symbol.
This commit is contained in:
parent
e02e595eec
commit
78a0773f38
@ -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 } );
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user