Skip to content
  1. Oct 15, 2010
    • Johnny Chen's avatar
      This is an initial version of test driver enhanceent to be able to dump the · 150c3cc8
      Johnny Chen authored
      session info after a test case failure, allowing more direct inspection of
      debugger session which leads to the test failure.
      
      For a simple usage scenario:
      
      [18:06:26] johnny:/Volumes/data/lldb/svn/trunk/test $ ./dotest.py -v . 2> ~/Developer/Log/lldbtest.log 
      
      ...
      
      [18:14:43] johnny:/Volumes/data/lldb/svn/trunk/test $ ls -l .session-*
      -rw-r--r--  1 johnny  admin  1359 Oct 14 18:06 .session-TestArrayTypes.ArrayTypesTestCase.test_with_dwarf_and_run_command
      -rw-r--r--  1 johnny  admin  2054 Oct 14 18:07 .session-TestClassTypes.ClassTypesTestCase.test_with_dsym_and_expr_parser
      -rw-r--r--  1 johnny  admin  2055 Oct 14 18:07 .session-TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_expr_parser
      -rw-r--r--  1 johnny  admin  1351 Oct 14 17:57 .session-TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_run_command
      [18:14:51] johnny:/Volumes/data/lldb/svn/trunk/test $ 
      
      The test case which failed will have its recorded session info dumped to a
      .session-* file in the current working directory.  For test suite using
      relocated directory, expect to find the .session-* files there.
      
      In this checkin, I also add @skip decorator to the two test methods in
      test/foundation/TestObjCMethods.py as it looks like the test suite is
      deadlocking when running the tests.  More investigations are needed.
      
      llvm-svn: 116552
      150c3cc8
    • Jim Ingham's avatar
      Added support for breakpoint conditions. I also had to separate the "run the... · 36f3b369
      Jim Ingham authored
      Added support for breakpoint conditions.  I also had to separate the "run the expression" part of ClangFunction::Execute from the "Gather the expression result" so that in the case of the Breakpoint condition I can move the condition evaluation into the normal thread plan processing.
      
      Also added support for remembering the "last set breakpoint" so that "break modify" will act on the last set breakpoint.
      
      llvm-svn: 116542
      36f3b369
    • Greg Clayton's avatar
      Fixed an expression parsing issue where if you were stopped somewhere without · 8f92f0a3
      Greg Clayton authored
      debug information and you evaluated an expression, a crash would occur as a
      result of an unchecked pointer.
      
      Added the ability to get the expression path for a ValueObject. For a rectangle
      point child "x" the expression path would be something like: "rect.top_left.x".
      This will allow GUI and command lines to get ahold of the expression path for
      a value object without having to explicitly know about the hierarchy. This
      means the ValueObject base class now has a "ValueObject *m_parent;" member.
      All ValueObject subclasses now correctly track their lineage and are able
      to provide value expression paths as well.
      
      Added a new "--flat" option to the "frame variable" to allow for flat variable
      output. An example of the current and new outputs:
      
      (lldb) frame variable 
      argc = 1
      argv = 0x00007fff5fbffe80
      pt = {
        x = 2
        y = 3
      }
      rect = {
        bottom_left = {
          x = 1
          y = 2
        }
        top_right = {
          x = 3
          y = 4
        }
      }
      (lldb) frame variable --flat 
      argc = 1
      argv = 0x00007fff5fbffe80
      pt.x = 2
      pt.y = 3
      rect.bottom_left.x = 1
      rect.bottom_left.y = 2
      rect.top_right.x = 3
      rect.top_right.y = 4
      
      
      As you can see when there is a lot of hierarchy it can help flatten things out.
      Also if you want to use a member in an expression, you can copy the text from
      the "--flat" output and not have to piece it together manually. This can help
      when you want to use parts of the STL in expressions:
      
      (lldb) frame variable --flat
      argc = 1
      argv = 0x00007fff5fbffea8
      hello_world._M_dataplus._M_p = 0x0000000000000000
      (lldb) expr hello_world._M_dataplus._M_p[0] == '\0'
      
      llvm-svn: 116532
      8f92f0a3
  2. Oct 14, 2010
  3. Oct 13, 2010
  4. Oct 12, 2010
Loading