Skip to content
  1. Sep 30, 2011
    • 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
  2. Sep 29, 2011
  3. Sep 28, 2011
  4. Sep 27, 2011
  5. Sep 26, 2011
  6. Sep 24, 2011
Loading