mirror of
https://github.com/wolfpld/tracy
synced 2025-04-30 04:43:53 +00:00
Display call target function name more prominently.
This commit is contained in:
parent
cdcee49776
commit
8d626d25f0
@ -3896,6 +3896,19 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t jumpOffset;
|
||||||
|
uint64_t jumpBase;
|
||||||
|
const char* jumpName = nullptr;
|
||||||
|
const char* normalized = nullptr;
|
||||||
|
if( line.jumpAddr != 0 )
|
||||||
|
{
|
||||||
|
jumpOffset = 0;
|
||||||
|
jumpBase = worker.GetSymbolForAddress( line.jumpAddr, jumpOffset );
|
||||||
|
auto jumpSym = jumpBase == 0 ? worker.GetSymbolData( line.jumpAddr ) : worker.GetSymbolData( jumpBase );
|
||||||
|
if( jumpSym ) jumpName = worker.GetString( jumpSym->name );
|
||||||
|
if( jumpName ) normalized = view.GetShortenName() != ShortenName::Never ? ShortenZoneName( ShortenName::OnlyNormalize, jumpName ) : jumpName;
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::BeginGroup();
|
ImGui::BeginGroup();
|
||||||
TextColoredUnformatted( AsmColor( AsmOpTypeColors[(int)line.opType], inContext, isSelected ), line.mnemonic.c_str() );
|
TextColoredUnformatted( AsmColor( AsmOpTypeColors[(int)line.opType], inContext, isSelected ), line.mnemonic.c_str() );
|
||||||
ImGui::SameLine( 0, ImGui::CalcTextSize( " " ).x * ( m_maxMnemonicLen - line.mnemonic.size() ) );
|
ImGui::SameLine( 0, ImGui::CalcTextSize( " " ).x * ( m_maxMnemonicLen - line.mnemonic.size() ) );
|
||||||
@ -3911,6 +3924,20 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr
|
|||||||
hasJump = true;
|
hasJump = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if( !hasJump && jumpName && jumpBase != m_baseAddr )
|
||||||
|
{
|
||||||
|
ImGui::PushStyleColor( ImGuiCol_Text, AsmColor( AsmSyntaxColors[(int)Tokenizer::AsmTokenColor::Label], inContext, isSelected ) );
|
||||||
|
if( jumpOffset == 0 )
|
||||||
|
{
|
||||||
|
ImGui::Text( "%s", normalized );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImGui::Text( "%s+%" PRIu32, normalized, jumpOffset );
|
||||||
|
}
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
hasJump = true;
|
||||||
|
}
|
||||||
if( !hasJump )
|
if( !hasJump )
|
||||||
{
|
{
|
||||||
auto ptr = line.operands.c_str();
|
auto ptr = line.operands.c_str();
|
||||||
@ -3938,19 +3965,6 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr
|
|||||||
}
|
}
|
||||||
ImGui::EndGroup();
|
ImGui::EndGroup();
|
||||||
|
|
||||||
uint32_t jumpOffset;
|
|
||||||
uint64_t jumpBase;
|
|
||||||
const char* jumpName = nullptr;
|
|
||||||
const char* normalized = nullptr;
|
|
||||||
if( line.jumpAddr != 0 )
|
|
||||||
{
|
|
||||||
jumpOffset = 0;
|
|
||||||
jumpBase = worker.GetSymbolForAddress( line.jumpAddr, jumpOffset );
|
|
||||||
auto jumpSym = jumpBase == 0 ? worker.GetSymbolData( line.jumpAddr ) : worker.GetSymbolData( jumpBase );
|
|
||||||
if( jumpSym ) jumpName = worker.GetString( jumpSym->name );
|
|
||||||
if( jumpName ) normalized = view.GetShortenName() != ShortenName::Never ? ShortenZoneName( ShortenName::OnlyNormalize, jumpName ) : jumpName;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ImGui::IsItemHovered() )
|
if( ImGui::IsItemHovered() )
|
||||||
{
|
{
|
||||||
if( asmVar )
|
if( asmVar )
|
||||||
@ -3986,7 +4000,20 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr
|
|||||||
TextDisabledUnformatted( "External target:" );
|
TextDisabledUnformatted( "External target:" );
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::Text( "%s+%" PRIu32, normalized, jumpOffset );
|
if( jumpOffset == 0 )
|
||||||
|
{
|
||||||
|
ImGui::Text( "%s", normalized );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImGui::Text( "%s+%" PRIu32, normalized, jumpOffset );
|
||||||
|
}
|
||||||
|
if( normalized != jumpName )
|
||||||
|
{
|
||||||
|
ImGui::PushFont( m_smallFont );
|
||||||
|
TextDisabledUnformatted( jumpName );
|
||||||
|
ImGui::PopFont();
|
||||||
|
}
|
||||||
if( jumpBase == m_baseAddr )
|
if( jumpBase == m_baseAddr )
|
||||||
{
|
{
|
||||||
uint32_t srcline;
|
uint32_t srcline;
|
||||||
@ -4125,7 +4152,20 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr
|
|||||||
TextDisabledUnformatted( "External target:" );
|
TextDisabledUnformatted( "External target:" );
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::Text( "%s+%" PRIu32, normalized, jumpOffset );
|
if( jumpOffset == 0 )
|
||||||
|
{
|
||||||
|
ImGui::Text( "%s", normalized );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImGui::Text( "%s+%" PRIu32, normalized, jumpOffset );
|
||||||
|
}
|
||||||
|
if( normalized != jumpName && strcmp( normalized, jumpName ) != 0 )
|
||||||
|
{
|
||||||
|
ImGui::PushFont( m_smallFont );
|
||||||
|
TextDisabledUnformatted( jumpName );
|
||||||
|
ImGui::PopFont();
|
||||||
|
}
|
||||||
if( jumpBase == m_baseAddr )
|
if( jumpBase == m_baseAddr )
|
||||||
{
|
{
|
||||||
uint32_t srcline;
|
uint32_t srcline;
|
||||||
@ -4309,13 +4349,10 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui::TextDisabled( " [%s+%" PRIu32"]", normalized, jumpOffset );
|
ImGui::TextDisabled( " [%s]", line.operands.c_str() );
|
||||||
if( ImGui::IsItemHovered() )
|
if( ImGui::IsItemClicked() )
|
||||||
{
|
{
|
||||||
UnsetFont();
|
jumpOut = line.jumpAddr;
|
||||||
TooltipNormalizedName( jumpName, normalized );
|
|
||||||
SetFont();
|
|
||||||
if( ImGui::IsItemClicked() ) jumpOut = line.jumpAddr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user