Breakpoint from string flag parsing using token

Since the string includes hex, the break_on_hit 'b' flag can be pulled from the address by accident

istringstream for BreakPoint parsing
This commit is contained in:
Trevor Rudolph 2021-01-19 15:03:30 -05:00
parent ebf3b5faf4
commit 59058bae0a
1 changed files with 7 additions and 6 deletions

View File

@ -65,12 +65,13 @@ void BreakPoints::AddFromStrings(const TBreakPointsStr& bp_strings)
for (const std::string& bp_string : bp_strings)
{
TBreakPoint bp;
std::stringstream ss;
ss << std::hex << bp_string;
ss >> bp.address;
bp.is_enabled = bp_string.find('n') != bp_string.npos;
bp.log_on_hit = bp_string.find('l') != bp_string.npos;
bp.break_on_hit = bp_string.find('b') != bp_string.npos;
std::string flags;
std::istringstream iss(bp_string);
iss >> std::hex >> bp.address;
iss >> flags;
bp.is_enabled = flags.find('n') != flags.npos;
bp.log_on_hit = flags.find('l') != flags.npos;
bp.break_on_hit = flags.find('b') != flags.npos;
bp.is_temporary = false;
Add(bp);
}