Skip to content
  1. Jan 24, 2012
  2. Jan 23, 2012
  3. Jan 21, 2012
  4. Jan 20, 2012
  5. Jan 19, 2012
  6. Jan 18, 2012
  7. Jan 14, 2012
    • Greg Clayton's avatar
      <rdar://problem/9731573> · 32720b51
      Greg Clayton authored
      Fixed two double "int close(int fd)" issues found by our file descriptor
      interposing library on darwin:
      
      The first is in SBDebugger::SetInputFileHandle (FILE *file, bool transfer_ownership)
      where we would give our FILE * to a lldb_private::File object member variable and tell
      it that it owned the file descriptor if "transfer_ownership" was true, and then we
      would also give it to the communication plug-in that waits for stdin to come in and
      tell it that it owned the FILE *. They would both try and close the file.
      
      The seconds was when we use a file descriptor through ConnectionFileDescriptor 
      where someone else is creating a connection with ConnectionFileDescriptor and a URL
      like: "fd://123". We were always taking ownwership of the fd 123, when we shouldn't
      be. There is a TODO in the comments that says we should allow URL options to be passed
      to be able to specify this later (something like: "fd://123?transer_ownership=1"), but
      we can get to this later.
      
      llvm-svn: 148201
      32720b51
    • Greg Clayton's avatar
      <rdar://problem/10684141> · ccbc08e6
      Greg Clayton authored
      When the lldb_private::Debugger goes away, it should cleanup all
      of its targets.
      
      llvm-svn: 148189
      ccbc08e6
  8. Jan 13, 2012
    • Sean Callanan's avatar
      I made two major improvements to the way the · cbbe3ac4
      Sean Callanan authored
      master AST importer imports types.
      
      - First, before importing the definition of a
        Decl from its source, notify the underlying
        importer of the source->destination mapping.
        Especially for anonymous strucutres that are
        otherwise hard to unique in the target AST
        context, this hint is very helpful.
      
      - When deporting a type or Decl from one
        ASTContext to another (deporting occurs in
        the case of moving result types from the
        parser's AST context to the result AST
        context), don't forget their origin if the
        origin is the original debug information.
      
      llvm-svn: 148152
      cbbe3ac4
    • Sean Callanan's avatar
      Only create new ASTImporters on demand, not · ba5be17e
      Sean Callanan authored
      proactively.
      
      llvm-svn: 148146
      ba5be17e
    • Sean Callanan's avatar
      If the name of a struct or union is NULL in the · 7282e2ac
      Sean Callanan authored
      debug info, call it anonymous.  This isn't
      perfect, because Clang actually considers the
      following struct not to be anonymous:
      –
      struct {
        int x;
        int y;
      } g_foo;
      -
      but DWARF doesn't make the distinction.
      
      llvm-svn: 148145
      7282e2ac
    • Sean Callanan's avatar
      Fixed some logging in the AST source and added · a6e61a78
      Sean Callanan authored
      more information.
      
      llvm-svn: 148144
      a6e61a78
    • Greg Clayton's avatar
      Added a new thread and frame format that can be used to display a function · 6d3dbf51
      Greg Clayton authored
      name + arguments when the data is available. It seems to work really well, 
      but some more testing is needed before we make this on by default.
      
      The new function format name is:
      
       ${function.name-with-args}
      
      To see how to use these formats see the website:
      
          http://lldb.llvm.org/formats.html
      
      Here is a sample backtrace of debugging LLDB with LLDB using this new format
      value:
      
      (lldb) thread backtrace all
      * thread #1: tid = 0x2203, 0x00007fff88a17bca libsystem_kernel.dylib __psynch_cvwait + 10, stop reason = signal SIGINT, name = <lldb.driver.main-thread>, queue = com.apple.main-thread
          frame #0: 0x00007fff88a17bca libsystem_kernel.dylib __psynch_cvwait + 10
          frame #1: 0x00007fff884ae274 libsystem_c.dylib _pthread_cond_wait + 840
          frame #2: 0x00000001010778ea LLDB lldb_private::Condition::Wait(this=0x0000000104846770, mutex=0x0000000104846730, abstime=0x0000000000000000, timed_out=0x00007fff5fbfdea7) + 138 at Condition.cpp:92
          frame #3: 0x0000000101244c21 LLDB lldb_private::Predicate<bool>::WaitForValueEqualTo(this=0x0000000104846728, value=true, abstime=0x0000000000000000, timed_out=0x00007fff5fbfdea7) + 209 at Predicate.h:317
          frame #4: 0x0000000100f6eeb2 LLDB lldb_private::Listener::WaitForEventsInternal(this=0x0000000104846660, timeout=0x0000000000000000, broadcaster=0x0000000000000000, broadcaster_names=0x0000000000000000, num_broadcaster_names=0x00000000, event_type_mask=0x00000000, event_sp=0x00007fff5fbfe030) + 386 at Listener.cpp:388
          frame #5: 0x0000000100f6f231 LLDB lldb_private::Listener::WaitForEvent(this=0x0000000104846660, timeout=0x0000000000000000, event_sp=0x00007fff5fbfe030) + 81 at Listener.cpp:436
          frame #6: 0x0000000100098dcd LLDB lldb::SBListener::WaitForEvent(this=0x00007fff5fbff0f0, timeout_secs=0xffffffff, event=0x00007fff5fbfe430) + 685 at SBListener.cpp:181
          frame #7: 0x000000010000628c lldb Driver::MainLoop(this=0x00007fff5fbff620) + 5244 at Driver.cpp:1325
          frame #8: 0x0000000100006ca3 lldb main(argc=1, argv=0x00007fff5fbff758, envp=0x00007fff5fbff768) + 419 at Driver.cpp:1460
          frame #9: 0x0000000100000d54 lldb start + 52
      
        thread #3: tid = 0x2703, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.debugger.input>
          frame #0: 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
          frame #1: 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x000000010524d040, timeout_usec=0x004c4b40, error_ptr=0x0000000105640a18) + 722 at ConnectionFileDescriptor.cpp:542
          frame #2: 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x000000010524d040, dst=0x0000000105640a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105640a14, error_ptr=0x0000000105640a18) + 301 at ConnectionFileDescriptor.cpp:273
          frame #3: 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000104846270, dst=0x0000000105640a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105640a14, error_ptr=0x0000000105640a18) + 167 at Communication.cpp:317
          frame #4: 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000104846270) + 327 at Communication.cpp:344
          frame #5: 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001045f6650) + 227 at Host.cpp:549
          frame #6: 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
          frame #7: 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
      
        thread #4: tid = 0x2803, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.driver.editline>
          frame #0: 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
          frame #1: 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x0000000105700370, timeout_usec=0x004c4b40, error_ptr=0x00000001056c3a18) + 722 at ConnectionFileDescriptor.cpp:542
          frame #2: 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x0000000105700370, dst=0x00000001056c3a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x00000001056c3a14, error_ptr=0x00000001056c3a18) + 301 at ConnectionFileDescriptor.cpp:273
          frame #3: 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000105700000, dst=0x00000001056c3a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x00000001056c3a14, error_ptr=0x00000001056c3a18) + 167 at Communication.cpp:317
          frame #4: 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000105700000) + 327 at Communication.cpp:344
          frame #5: 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x0000000105700430) + 227 at Host.cpp:549
          frame #6: 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
          frame #7: 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
      
        thread #5: tid = 0x2903, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.driver.editline_output>
          frame #0: 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
          frame #1: 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x00000001057178f0, timeout_usec=0x004c4b40, error_ptr=0x0000000105980a18) + 722 at ConnectionFileDescriptor.cpp:542
          frame #2: 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x00000001057178f0, dst=0x0000000105980a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105980a14, error_ptr=0x0000000105980a18) + 301 at ConnectionFileDescriptor.cpp:273
          frame #3: 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000105717580, dst=0x0000000105980a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105980a14, error_ptr=0x0000000105980a18) + 167 at Communication.cpp:317
          frame #4: 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000105717580) + 327 at Communication.cpp:344
          frame #5: 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001057179b0) + 227 at Host.cpp:549
          frame #6: 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
          frame #7: 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
      
        thread #6: tid = 0x2a03, 0x00007fff88a18af2 libsystem_kernel.dylib read + 10, name = <lldb.driver.commandline_io>
          frame #0: 0x00007fff88a18af2 libsystem_kernel.dylib read + 10
          frame #1: 0x0000000100050c3b libedit.3.dylib read_init + 247
          frame #2: 0x0000000100050e96 libedit.3.dylib el_wgetc + 155
          frame #3: 0x000000010005115d libedit.3.dylib el_wgets + 578
          frame #4: 0x000000010005debc libedit.3.dylib el_gets + 37
          frame #5: 0x000000010000d409 lldb IOChannel::LibeditGetInput(this=0x0000000105700490, new_line=0x0000000105a03db0) + 89 at IOChannel.cpp:311
          frame #6: 0x000000010000d8b6 lldb IOChannel::Run(this=0x0000000105700490) + 806 at IOChannel.cpp:391
          frame #7: 0x000000010000d57d lldb IOChannel::IOReadThread(ptr=0x0000000105700490) + 29 at IOChannel.cpp:345
          frame #8: 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001057179f0) + 227 at Host.cpp:549
          frame #9: 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
          frame #10: 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
      (lldb) 
      
      llvm-svn: 148110
      6d3dbf51
    • Greg Clayton's avatar
      <rdar://problem/10688864> · d66945ae
      Greg Clayton authored
      Fixed the new __apple_types to be able to accept a DW_TAG_structure_type
      forward declaration and then find a DW_TAG_class_type definition, or vice
      versa.
      
      llvm-svn: 148097
      d66945ae
    • Jim Ingham's avatar
      Don't set breakpoints independently comp unit by comp unit, but look over all... · bc2f9182
      Jim Ingham authored
      Don't set breakpoints independently comp unit by comp unit, but look over all the file & line matches
      and only pick the "best" ones.
      <rdar://problem/10685990>
      
      llvm-svn: 148087
      bc2f9182
  9. Jan 12, 2012
  10. Jan 11, 2012
Loading