Skip to content
Permalink
Browse files
Merge pull request #10159 from JosJuice/print-callstack-log
Core: Use log variant of PrintCallstack, not print variant
  • Loading branch information
leoetlino committed Oct 12, 2021
2 parents 6bf467f + 97a5a7b commit 6c1a625
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 24 deletions.
@@ -97,28 +97,6 @@ bool GetCallstack(std::vector<CallstackEntry>& output)
return true;
}

void PrintCallstack()
{
fmt::print("== STACK TRACE - SP = {:08x} ==", PowerPC::ppcState.gpr[1]);

if (LR == 0)
{
fmt::print(" LR = 0 - this is bad");
}

if (g_symbolDB.GetDescription(PC) != g_symbolDB.GetDescription(LR))
{
fmt::print(" * {} [ LR = {:08x} ]", g_symbolDB.GetDescription(LR), LR);
}

WalkTheStack([](u32 func_addr) {
std::string func_desc = g_symbolDB.GetDescription(func_addr);
if (func_desc.empty() || func_desc == "Invalid")
func_desc = "(unknown)";
fmt::print(" * {} [ addr = {:08x} ]", func_desc, func_addr);
});
}

void PrintCallstack(Common::Log::LOG_TYPE type, Common::Log::LOG_LEVELS level)
{
GENERIC_LOG_FMT(type, level, "== STACK TRACE - SP = {:08x} ==", PowerPC::ppcState.gpr[1]);
@@ -19,7 +19,6 @@ struct CallstackEntry
};

bool GetCallstack(std::vector<CallstackEntry>& output);
void PrintCallstack();
void PrintCallstack(Common::Log::LOG_TYPE type, Common::Log::LOG_LEVELS level);
void PrintDataBuffer(Common::Log::LOG_TYPE type, const u8* data, size_t size,
std::string_view title);
@@ -340,7 +340,7 @@ void Interpreter::unknown_instruction(UGeckoInstruction inst)
const u32 opcode = PowerPC::HostRead_U32(last_pc);
const std::string disasm = Common::GekkoDisassembler::Disassemble(opcode, last_pc);
NOTICE_LOG_FMT(POWERPC, "Last PC = {:08x} : {}", last_pc, disasm);
Dolphin_Debugger::PrintCallstack();
Dolphin_Debugger::PrintCallstack(Common::Log::POWERPC, Common::Log::LNOTICE);
NOTICE_LOG_FMT(
POWERPC,
"\nIntCPU: Unknown instruction {:08x} at PC = {:08x} last_PC = {:08x} LR = {:08x}\n",

0 comments on commit 6c1a625

Please sign in to comment.