mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 18:53:28 +01:00
GDB: remove wrong_checksum_exception
This commit is contained in:
parent
587ae17aa2
commit
e74a311931
@ -70,15 +70,6 @@ struct gdb_cmd
|
|||||||
u8 checksum;
|
u8 checksum;
|
||||||
};
|
};
|
||||||
|
|
||||||
class wrong_checksum_exception : public std::runtime_error
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wrong_checksum_exception(char const* const message)
|
|
||||||
: runtime_error(message)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
bool check_errno_again()
|
bool check_errno_again()
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@ -251,7 +242,7 @@ u8 gdb_thread::read_hexbyte()
|
|||||||
return hex_to_u8(s);
|
return hex_to_u8(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gdb_thread::try_read_cmd(gdb_cmd& out_cmd)
|
bool gdb_thread::try_read_cmd(gdb_cmd& out_cmd)
|
||||||
{
|
{
|
||||||
char c = read_char();
|
char c = read_char();
|
||||||
//interrupt
|
//interrupt
|
||||||
@ -259,7 +250,7 @@ void gdb_thread::try_read_cmd(gdb_cmd& out_cmd)
|
|||||||
out_cmd.cmd = '\x03';
|
out_cmd.cmd = '\x03';
|
||||||
out_cmd.data = "";
|
out_cmd.data = "";
|
||||||
out_cmd.checksum = 0;
|
out_cmd.checksum = 0;
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
if (UNLIKELY(c != '$')) {
|
if (UNLIKELY(c != '$')) {
|
||||||
//gdb starts conversation with + for some reason
|
//gdb starts conversation with + for some reason
|
||||||
@ -302,9 +293,7 @@ void gdb_thread::try_read_cmd(gdb_cmd& out_cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
out_cmd.checksum = read_hexbyte();
|
out_cmd.checksum = read_hexbyte();
|
||||||
if (out_cmd.checksum != checksum) {
|
return out_cmd.checksum == checksum;
|
||||||
throw wrong_checksum_exception("Wrong checksum for packet" HERE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gdb_thread::read_cmd(gdb_cmd& out_cmd)
|
bool gdb_thread::read_cmd(gdb_cmd& out_cmd)
|
||||||
@ -313,12 +302,12 @@ bool gdb_thread::read_cmd(gdb_cmd& out_cmd)
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
try_read_cmd(out_cmd);
|
if (try_read_cmd(out_cmd))
|
||||||
ack(true);
|
{
|
||||||
return true;
|
ack(true);
|
||||||
}
|
return true;
|
||||||
catch (const wrong_checksum_exception&)
|
}
|
||||||
{
|
|
||||||
ack(false);
|
ack(false);
|
||||||
}
|
}
|
||||||
catch (const std::runtime_error& e)
|
catch (const std::runtime_error& e)
|
||||||
|
@ -28,8 +28,10 @@ class gdb_thread
|
|||||||
char read_char();
|
char read_char();
|
||||||
//reads pairs of hex characters and returns their integer value
|
//reads pairs of hex characters and returns their integer value
|
||||||
u8 read_hexbyte();
|
u8 read_hexbyte();
|
||||||
//tries to read command, throws exceptions if anything goes wrong
|
|
||||||
void try_read_cmd(gdb_cmd& out_cmd);
|
// Tries to read command, returns false on error
|
||||||
|
bool try_read_cmd(gdb_cmd& out_cmd);
|
||||||
|
|
||||||
//reads commands until receiveing one with valid checksum
|
//reads commands until receiveing one with valid checksum
|
||||||
//in case of other exception (i.e. wrong first char of command)
|
//in case of other exception (i.e. wrong first char of command)
|
||||||
//it will log exception text and return false
|
//it will log exception text and return false
|
||||||
|
Loading…
Reference in New Issue
Block a user