Changed the register number lists for the qRegisterInfo packet response to be raw hex to match all other register reading and writing APIs.

llvm-svn: 173105
This commit is contained in:
Greg Clayton 2013-01-21 23:32:42 +00:00
parent 3dd50a498d
commit 0ba20241a6
3 changed files with 13 additions and 9 deletions

View File

@ -371,15 +371,15 @@ generic If the register is a generic register that most CPUs have, classify
arguments when the argument fits into a register)
container-regs
The value for this key is a comma separated list of decimal register
numbers.
The value for this key is a comma separated list of raw hex (no
leading "0x") register numbers.
This specifies that this register is contained in other concrete
register values. For example "eax" is in the lower 32 bits of the
"rax" register value for x86_64, so "eax" could specify that it is
contained in "rax" by specifying the register number for "rax".
"container-regs:0,1;"
"container-regs:00,0a,3b;"
This is handy for defining what GDB used to call "pseudo" registers.
These registers are never requested by LLDB via the register read
@ -387,13 +387,13 @@ container-regs
of this register.
invalidate-regs
The value for this key is a comma separated list of decimal register
numbers.
The value for this key is a comma separated list of raw hex (no
leading "0x") register numbers.
This specifies which register values should be invalidated when this
register is modified.
"invalidate-regs:1,2,3;"
"invalidate-regs:01,0b,1e;"
This is handy when modifying a specific register can cause other
register values to change. For example, when debugging an ARM target,

View File

@ -382,7 +382,9 @@ ProcessGDBRemote::BuildDynamicRegisterInfo (bool force)
value_pair = value_pair.second.split(',');
if (!value_pair.first.empty())
{
value_regs.push_back (Args::StringToUInt32 (value_pair.first.str().c_str()));
uint32_t reg = Args::StringToUInt32 (value_pair.first.str().c_str(), LLDB_INVALID_REGNUM, 16);
if (reg != LLDB_INVALID_REGNUM)
value_regs.push_back (reg);
}
} while (!value_pair.second.empty());
}
@ -395,7 +397,9 @@ ProcessGDBRemote::BuildDynamicRegisterInfo (bool force)
value_pair = value_pair.second.split(',');
if (!value_pair.first.empty())
{
invalidate_regs.push_back (Args::StringToUInt32 (value_pair.first.str().c_str()));
uint32_t reg = Args::StringToUInt32 (value_pair.first.str().c_str(), LLDB_INVALID_REGNUM, 16);
if (reg != LLDB_INVALID_REGNUM)
invalidate_regs.push_back (reg);
}
} while (!value_pair.second.empty());
}

View File

@ -1572,7 +1572,7 @@ RNBRemote::HandlePacket_qRegisterInfo (const char *p)
{
if (i > 0)
ostrm << ',';
ostrm << DECIMAL << reg_entry->nub_info.update_regs[i];
ostrm << RAW_HEXBASE << reg_entry->nub_info.update_regs[i];
}
ostrm << ';';
}