Changed the register number lists for the qRegisterInfo packet response to be raw...
authorGreg Clayton <gclayton@apple.com>
Mon, 21 Jan 2013 23:32:42 +0000 (23:32 +0000)
committerGreg Clayton <gclayton@apple.com>
Mon, 21 Jan 2013 23:32:42 +0000 (23:32 +0000)
llvm-svn: 173105

lldb/docs/lldb-gdb-remote.txt
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
lldb/tools/debugserver/source/RNBRemote.cpp

index 68dc898..83473d3 100644 (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,
index ce220d3..07ced0d 100644 (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());
                     }
index 4e75715..bcab419 100644 (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 << ';';
         }