1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 02:32:36 +01:00

debugger: Improve PPU string constraints

This commit is contained in:
Eladash 2021-02-13 10:13:26 +02:00 committed by Ivan
parent 423cc1685c
commit cf384795d2

View File

@ -633,6 +633,8 @@ std::string ppu_thread::dump_regs() const
std::string buf_tmp(gpr_buf, gpr_buf + max_str_len);
std::string_view sv(buf_tmp.data(), std::min<usz>(buf_tmp.size(), buf_tmp.find_first_of("\0\n"sv)));
if (is_function)
{
if (toc)
@ -646,9 +648,12 @@ std::string ppu_thread::dump_regs() const
fmt::append(ret, " -> %s", dis_asm.last_opcode);
}
}
else if (std::isprint(static_cast<u8>(buf_tmp[0])) && std::isprint(static_cast<u8>(buf_tmp[1])) && std::isprint(static_cast<u8>(buf_tmp[2])))
// NTS: size of 3 and above is required
// If ends with a newline, only one character is required
else if ((sv.size() == buf_tmp.size() || (sv.size() >= (buf_tmp[sv.size()] == '\n' ? 1 : 3))) &&
std::all_of(sv.begin(), sv.end(), [](u8 c){ return std::isprint(c); }))
{
fmt::append(ret, " -> \"%s\"", buf_tmp.c_str());
fmt::append(ret, " -> \"%s\"", sv);
}
else
{