Skip to content
  1. Oct 03, 2011
  2. Oct 01, 2011
  3. Sep 30, 2011
    • Johnny Chen's avatar
      o lldbtest.py: · 86268e44
      Johnny Chen authored
      Add a keyword argument 'endstr' to TestBase.expect() method to assert that the output
      will end with 'endstr'.
      
      Add TestBase.switch_to_thread_with_stop_reason(stop_reason) to select the thread with
      the stop reason = 'stop_reason' as the current thread.
      
      o TestWatchLocation.py:
      
      Modified to switch to the stopped thread with stop reason = watchpoint and to evaluate
      an expression with expected output for stronger assertion.
      
      llvm-svn: 140890
      86268e44
    • Greg Clayton's avatar
      Removed some commented out code from the DWARF parser. · 0bd4e1b8
      Greg Clayton authored
      Also reduce the size of the lldb_private::Symbol objects by removing the
      lldb_private::Function pointer that was in each symbol. Running Instruments
      has shown that when debugging large applications with DWARF in .o files that
      lldb_private::Symbol objects are one of the highest users of memory. No one
      was using the Symbol::GetFunction() call anyway.
      
      llvm-svn: 140881
      0bd4e1b8
    • Greg Clayton's avatar
      Destroy a target when it is deleted. · 3360b411
      Greg Clayton authored
      llvm-svn: 140845
      3360b411
    • Greg Clayton's avatar
      75340622
    • Greg Clayton's avatar
      <rdar://problem/10212450> · 2bc22f83
      Greg Clayton authored
      Don't parse function types all the time, only parse them lazily.
      
      llvm-svn: 140842
      2bc22f83
    • Johnny Chen's avatar
      Add an accompanying option to the 'frame variable -w' command to, instead of watching the variable, · b62a3be1
      Johnny Chen authored
      watch the location pointed to by the variable.  An example,
      
      (lldb) frame variable -w write -x 1 -g g_char_ptr
      (char *) g_char_ptr = 0x0000000100100860 ""...
      Watchpoint created: WatchpointLocation 1: addr = 0x100100860 size = 1 state = enabled type = w
          declare @ '/Volumes/data/lldb/svn/trunk/test/functionalities/watchpoint/hello_watchlocation/main.cpp:21'
      
      ...
      
      (lldb) c
      Process 3936 resuming
      
      ...
      
      rocess 3936 stopped
      * thread #2: tid = 0x3403, 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27, stop reason = watchpoint 1
          frame #0: 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27
         24  	do_bad_thing_with_location(char *char_ptr, char new_val)
         25  	{
         26  	    *char_ptr = new_val;
      -> 27  	}
         28  	
         29  	uint32_t access_pool (uint32_t flag = 0);
         30  	
      (lldb) 
      
      Also add TestWatchLocation.py test to exercise this functionality.
      
      llvm-svn: 140836
      b62a3be1
    • Jim Ingham's avatar
      Remember to mark the OptionValueUUID as set in SetOptionValue. · 2af4db58
      Jim Ingham authored
      llvm-svn: 140835
      2af4db58
    • Johnny Chen's avatar
      Add docstring to in_range() function residing in the lldb module. · 97b5083c
      Johnny Chen authored
      llvm-svn: 140833
      97b5083c
    • Johnny Chen's avatar
      Fix extraneous import as a result of the last change. · 1887fce1
      Johnny Chen authored
      llvm-svn: 140832
      1887fce1
    • Johnny Chen's avatar
      Migrate the in_range(symbol, section) and symbol_iter(module, section) utility functions · c44e20ce
      Johnny Chen authored
      from lldbutil.py to the lldb.py proper.  The in_range() function becomes a function in
      the lldb module.  And the symbol_iter() function becomes a method within the SBModule
      called symbol_in_section_iter().  Example:
      
              # Iterates the text section and prints each symbols within each sub-section.
              for subsec in text_sec:
                  print INDENT + repr(subsec)
                  for sym in exe_module.symbol_in_section_iter(subsec):
                      print INDENT2 + repr(sym)
                      print INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType())
      
      might produce this following output:
      
          [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text
              id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870)
              symbol type: code
              id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0)
              symbol type: code
              id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c)
              symbol type: code
              id = {0x00000023}, name = 'start', address = 0x0000000100001780
              symbol type: code
          [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs
              id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62)
              symbol type: trampoline
              id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68)
              symbol type: trampoline
              id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e)
              symbol type: trampoline
              id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74)
              symbol type: trampoline
              id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a)
              symbol type: trampoline
              id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80)
              symbol type: trampoline
              id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86)
              symbol type: trampoline
              id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c)
              symbol type: trampoline
              id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92)
              symbol type: trampoline
              id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98)
              symbol type: trampoline
              id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e)
              symbol type: trampoline
              id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4)
              symbol type: trampoline
          [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper
          [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring
          [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info
          [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame
      
      llvm-svn: 140830
      c44e20ce
    • Greg Clayton's avatar
      Fixed an issue where a lexical block or inlined function might have bad debug · 6c7f5619
      Greg Clayton authored
      information generated for it. Say we have a concrete function "foo" which
      has inlined function "a" which calls another inlined function "b":
      
          foo
      1   {
      2       {
                  a ()
      3           {
                      b ()
      4               {
                      
                      }
                  }
              }
          }
          
      Sometimes we see the compiler generate an address range in the DWARF for "foo"
      (block 1 above) as say [0x1000-0x1100). Then the range for "a" is something
      like [0x1050-0x1060) (note that it is correctly scoped within the "foo" 
      address range). And then we get "b" which is a child of "a", yet the debug
      info says it has a range of [0x1060-0x1080) (not contained within "a"). We now
      detect this issue when making our blocks and add an extra range to "a".
      
      Also added a new "lldb" logging category named "symbol" where we can find out
      about symbol file errors and warnings.
      
      llvm-svn: 140822
      6c7f5619
    • Jason Molenda's avatar
      Add an additional "frame select" usage where it will re-select the current frame · 82d4a2b9
      Jason Molenda authored
      if no frame is specified.  This is useful to get the source context lines re-displayed
      when you need a reminder of where you are in the source currently.
      
      llvm-svn: 140819
      82d4a2b9
    • Jason Molenda's avatar
      Fix verbose logging of unwinders. · 560183fd
      Jason Molenda authored
      llvm-svn: 140817
      560183fd
    • Jim Ingham's avatar
      Centralize the warning reporting and use ReportWarning & ReportError... · c1663048
      Jim Ingham authored
      Centralize the warning reporting and use ReportWarning & ReportError everywhere we were using fprintf(stderr directly.
      
      llvm-svn: 140813
      c1663048
  4. Sep 29, 2011
  5. Sep 28, 2011
  6. Sep 27, 2011
Loading