Skip to content
  • Greg Clayton's avatar
    Did some work on the "register read" command to only show the first register · 385aa28c
    Greg Clayton authored
    set by default when dumping registers. If you want to see all of the register
    sets you can use the "--all" option:
    
    (lldb) register read --all
    
    If you want to just see some register sets, you can currently specify them
    by index:
    
    (lldb) register read --set 0 --set 2
    
    We need to get shorter register set names soon so we can specify the register
    sets by name without having to type too much. I will make this change soon.
    
    You can also have any integer encoded registers resolve the address values
    back to any code or data from the object files using the "--lookup" option.
    Below is sample output when stopped in the libc function "puts" with some
    const strings in registers:
    
    Process 8973 stopped
    * thread #1: tid = 0x2c03, 0x00007fff828fa30f libSystem.B.dylib`puts + 1, stop reason = instruction step into
      frame #0: 0x00007fff828fa30f libSystem.B.dylib`puts + 1
    (lldb) register read --lookup 
    General Purpose Registers:
      rax          = 0x0000000100000e98  "----------------------------------------------------------------------"
      rbx          = 0x0000000000000000
      rcx          = 0x0000000000000001  
      rdx          = 0x0000000000000000
      rdi          = 0x0000000100000e98  "----------------------------------------------------------------------"
      rsi          = 0x0000000100800000
      rbp          = 0x00007fff5fbff710
      rsp          = 0x00007fff5fbff280
      r8           = 0x0000000000000040  
      r9           = 0x0000000000000000
      r10          = 0x0000000000000000
      r11          = 0x0000000000000246  
      r12          = 0x0000000000000000
      r13          = 0x0000000000000000
      r14          = 0x0000000000000000
      r15          = 0x0000000000000000
      rip          = 0x00007fff828fa30f  libSystem.B.dylib`puts + 1
      rflags       = 0x0000000000000246  
      cs           = 0x0000000000000027  
      fs           = 0x0000000000000000
      gs           = 0x0000000000000000
    
    As we can see, we see two constant strings and the PC (register "rip") is 
    showing the code it resolves to.
    
    I fixed the register "--format" option to work as expected.
    
    Added a setting to disable skipping the function prologue when setting 
    breakpoints as a target settings variable:
    
    (lldb) settings set target.skip-prologue false
    
    Updated the user settings controller boolean value handler funciton to be able
    to take the default value so it can correctly respond to the eVarSetOperationClear
    operation.
    
    Did some usability work on the OptionValue classes.
    
    Fixed the "image lookup" command to correctly respond to the "--verbose" 
    option and display the detailed symbol context information when looking up
    line table entries and functions by name. This previously was only working
    for address lookups.
    
    llvm-svn: 129977
    385aa28c
Loading