Skip to content
  1. Aug 24, 2010
    • Greg Clayton's avatar
      Got a lot of the kinks worked out in the inline support after debugging more · 9da7bd07
      Greg Clayton authored
      complex inlined examples.
      
      StackFrame classes don't have a "GetPC" anymore, they have "GetFrameCodeAddress()".
      This is because inlined frames will have a PC value that is the same as the 
      concrete frame that owns the inlined frame, yet the code locations for the
      frame can be different. We also need to be able to get the real PC value for
      a given frame so that variables evaluate correctly. To get the actual PC
      value for a frame you can use:
      
          addr_t pc = frame->GetRegisterContext()->GetPC();
      
      Some issues with the StackFrame stomping on its own symbol context were 
      resolved which were causing the information to change for a frame when the
      stack ID was calculated. Also the StackFrame will now correctly store the
      symbol context resolve flags for any extra bits of information that were 
      looked up (if you ask for a block only and you find one, you will alwasy have
      the compile unit and function).
      
      llvm-svn: 111964
      9da7bd07
    • Johnny Chen's avatar
      Converted to Makefile.rules. · 9c194e3e
      Johnny Chen authored
      llvm-svn: 111961
      9c194e3e
    • Johnny Chen's avatar
      More descriptive method doc string. · 9d2bd830
      Johnny Chen authored
      llvm-svn: 111960
      9d2bd830
    • Johnny Chen's avatar
      6b900c5d
    • Johnny Chen's avatar
      Need a better method name. · f2b1419a
      Johnny Chen authored
      llvm-svn: 111939
      f2b1419a
    • Johnny Chen's avatar
      Converted to Makefile.rules. · f0dec3cf
      Johnny Chen authored
      llvm-svn: 111938
      f0dec3cf
    • Johnny Chen's avatar
      Added test case TestBitfields.py for rdar://problem/8348251, where · ea920fe8
      Johnny Chen authored
      "variable list bits" display bits variable correctly, but not "variable list".
      
      llvm-svn: 111937
      ea920fe8
    • Johnny Chen's avatar
      Converted to Makefile.rules. · 734cdb58
      Johnny Chen authored
      llvm-svn: 111928
      734cdb58
    • Johnny Chen's avatar
      Generates the .d prerequisite file for dylib as well. · e3dc0f04
      Johnny Chen authored
      llvm-svn: 111920
      e3dc0f04
    • Greg Clayton's avatar
      Clear the inline stack frame info when we clean all stack frames. · bba1ba85
      Greg Clayton authored
      llvm-svn: 111891
      bba1ba85
    • Greg Clayton's avatar
      Added support for inlined stack frames being represented as real stack frames · 1b72fcb7
      Greg Clayton authored
      which is now on by default. Frames are gotten from the unwinder as concrete
      frames, then if inline frames are to be shown, extra information to track
      and reconstruct these frames is cached with each Thread and exanded as needed.
      
      I added an inline height as part of the lldb_private::StackID class, the class
      that helps us uniquely identify stack frames. This allows for two frames to
      shared the same call frame address, yet differ only in inline height.
      
      Fixed setting breakpoint by address to not require addresses to resolve.
      
      A quick example:
      
      % cat main.cpp
      
      % ./build/Debug/lldb test/stl/a.out 
      Current executable set to 'test/stl/a.out' (x86_64).
      (lldb) breakpoint set --address 0x0000000100000d31
      Breakpoint created: 1: address = 0x0000000100000d31, locations = 1
      (lldb) r
      Launching 'a.out'  (x86_64)
      (lldb) Process 38031 Stopped
      * thread #1: tid = 0x2e03, pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::_M_data() const at /usr/include/c++/4.2.1/bits/basic_string.h:280, stop reason = breakpoint 1.1, queue = com.apple.main-thread
       277   	
       278   	      _CharT*
       279   	      _M_data() const
       280 ->	      { return  _M_dataplus._M_p; }
       281   	
       282   	      _CharT*
       283   	      _M_data(_CharT* __p)
      (lldb) bt
      thread #1: tid = 0x2e03, stop reason = breakpoint 1.1, queue = com.apple.main-thread
        frame #0: pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::_M_data() const at /usr/include/c++/4.2.1/bits/basic_string.h:280
        frame #1: pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::_M_rep() const at /usr/include/c++/4.2.1/bits/basic_string.h:288
        frame #2: pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::size() const at /usr/include/c++/4.2.1/bits/basic_string.h:606
        frame #3: pc = 0x0000000100000d31, where = a.out`main [inlined] operator<< <char, std::char_traits<char>, std::allocator<char> > at /usr/include/c++/4.2.1/bits/basic_string.h:2414
        frame #4: pc = 0x0000000100000d31, where = a.out`main + 33 at /Volumes/work/gclayton/Documents/src/lldb/test/stl/main.cpp:14
        frame #5: pc = 0x0000000100000d08, where = a.out`start + 52
      
      Each inline frame contains only the variables that they contain and each inlined
      stack frame is treated as a single entity.
      
      llvm-svn: 111877
      1b72fcb7
    • Johnny Chen's avatar
      Makefile refactoring for the test suite. Added a make directory under test, · 9bc867aa
      Johnny Chen authored
      which hosts the Makefile.rules and modified most of the Makefiles under each
      test case directories to utilize Mekefile.rules.
      
      Added a description of 'make' directory into README-TestSuite file.
      
      llvm-svn: 111868
      9bc867aa
    • Sean Callanan's avatar
      Refactored ClangExpressionDeclMap to use · 64dfc9a3
      Sean Callanan authored
      ClangExpressionVariables for found external variables
      as well as for struct members, replacing the Tuple
      and StructMember data structures.
      
      llvm-svn: 111859
      64dfc9a3
  2. Aug 23, 2010
  3. Aug 21, 2010
    • Greg Clayton's avatar
      Fixed the Xcode project file to not build all architectures · 2cf205ff
      Greg Clayton authored
      for Debug builds. I accidentally checked this in with my last
      round of changes.
      
      llvm-svn: 111743
      2cf205ff
    • Greg Clayton's avatar
      Modified the host process monitor callback function Host::StartMonitoringChildProcess · 0b76a2c2
      Greg Clayton authored
      to spawn a thread for each process that is being monitored. Previously
      LLDB would spawn a single thread that would wait for any child process which
      isn't ok to do as a shared library (LLDB.framework on Mac OSX, or lldb.so on
      linux). The old single thread used to call wait4() with a pid of -1 which 
      could cause it to reap child processes that it shouldn't have.
      
      Re-wrote the way Function blocks are handles. Previously I attempted to keep
      all blocks in a single memory allocation (in a std::vector). This made the
      code somewhat efficient, but hard to work with. I got rid of the old BlockList
      class, and went to a straight parent with children relationship. This new 
      approach will allow for partial parsing of the blocks within a function.
      
      llvm-svn: 111706
      0b76a2c2
  4. Aug 20, 2010
  5. Aug 19, 2010
  6. Aug 18, 2010
Loading