Skip to content
  1. Apr 13, 2012
  2. Apr 12, 2012
  3. Apr 07, 2012
  4. Apr 06, 2012
    • Johnny Chen's avatar
      The final batch of adding @dsym_test/@dwarf_test decorators. · 7bba2c6d
      Johnny Chen authored
      llvm-svn: 154211
      7bba2c6d
    • Johnny Chen's avatar
      Second batch of adding @dsym_test/@dwarf_test decorators to existing test cases. · 24086bc9
      Johnny Chen authored
      Plus some minor cleanup of test method names.
      Third and final batch is coming.
      
      llvm-svn: 154197
      24086bc9
    • Johnny Chen's avatar
      Add a new option to the test driver, -N dsym or -N dwarf, in order to exclude tests decorated with · f1548d4f
      Johnny Chen authored
      either @dsym_test or @dwarf_test to be executed during the testsuite run.  There are still lots of
      Test*.py files which have not been decorated with the new decorator.
      
      An example:
      
      # From TestMyFirstWatchpoint.py ->
      class HelloWatchpointTestCase(TestBase):
      
          mydir = os.path.join("functionalities", "watchpoint", "hello_watchpoint")
      
          @dsym_test
          def test_hello_watchpoint_with_dsym_using_watchpoint_set(self):
              """Test a simple sequence of watchpoint creation and watchpoint hit."""
              self.buildDsym(dictionary=self.d)
              self.setTearDownCleanup(dictionary=self.d)
              self.hello_watchpoint()
      
          @dwarf_test
          def test_hello_watchpoint_with_dwarf_using_watchpoint_set(self):
              """Test a simple sequence of watchpoint creation and watchpoint hit."""
              self.buildDwarf(dictionary=self.d)
              self.setTearDownCleanup(dictionary=self.d)
              self.hello_watchpoint()
      
      
      # Invocation ->
      [17:50:14] johnny:/Volumes/data/lldb/svn/ToT/test $ ./dotest.py -N dsym -v -p TestMyFirstWatchpoint.py
      LLDB build dir: /Volumes/data/lldb/svn/ToT/build/Debug
      LLDB-137
      Path: /Volumes/data/lldb/svn/ToT
      URL: https://johnny@llvm.org/svn/llvm-project/lldb/trunk
      Repository Root: https://johnny@llvm.org/svn/llvm-project
      Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
      Revision: 154133
      Node Kind: directory
      Schedule: normal
      Last Changed Author: gclayton
      Last Changed Rev: 154109
      Last Changed Date: 2012-04-05 10:43:02 -0700 (Thu, 05 Apr 2012)
      
      
      
      Session logs for test failures/errors/unexpected successes will go into directory '2012-04-05-17_50_49'
      Command invoked: python ./dotest.py -N dsym -v -p TestMyFirstWatchpoint.py
      compilers=['clang']
      
      Configuration: arch=x86_64 compiler=clang
      ----------------------------------------------------------------------
      Collected 2 tests
      
      1: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
         Test a simple sequence of watchpoint creation and watchpoint hit. ... skipped 'dsym tests'
      2: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
         Test a simple sequence of watchpoint creation and watchpoint hit. ... ok
      
      ----------------------------------------------------------------------
      Ran 2 tests in 1.138s
      
      OK (skipped=1)
      Session logs for test failures/errors/unexpected successes can be found in directory '2012-04-05-17_50_49'
      [17:50:50] johnny:/Volumes/data/lldb/svn/ToT/test $ 
      
      llvm-svn: 154154
      f1548d4f
  5. Apr 05, 2012
    • Greg Clayton's avatar
      Added a new Host class: ReadWriteLock · 7fdf9ef1
      Greg Clayton authored
      This abstracts read/write locks on the current host system. It is currently backed by pthread_rwlock_t objects so it should work on all unix systems.
      
      We also need a way to control multi-threaded access to the process through the public API when it is running. For example it isn't a good idea to try and get stack frames while the process is running. To implement this, the lldb_private::Process class now contains a ReadWriteLock member variable named m_run_lock which is used to control the public process state. The public process state represents the state of the process as the client knows it. The private is used to control the actual current process state. So the public state of the process can be stopped, yet the private state can be running when evaluating an expression for example. 
      
      Adding the read/write lock where readers are clients that want the process to stay stopped, and writers are clients that run the process, allows us to accurately control multi-threaded access to the process.
      
      Switched the SBThread and SBFrame over to us shared pointers to the ExecutionContextRef class instead of making their own class to track this. This fixed an issue with assigning on SBFrame to another and will also centralize the code that tracks weak references to execution context objects into one location.
      
      llvm-svn: 154099
      7fdf9ef1
  6. Apr 04, 2012
  7. Apr 03, 2012
  8. Apr 02, 2012
  9. Mar 30, 2012
  10. Mar 29, 2012
  11. Mar 27, 2012
    • Enrico Granata's avatar
      adding a summary for Objective-C type 'Class' · bf70ee97
      Enrico Granata authored
      llvm-svn: 153541
      bf70ee97
    • Enrico Granata's avatar
      Synthetic values are now automatically enabled and active by default. SBValue... · c5bc412c
      Enrico Granata authored
      Synthetic values are now automatically enabled and active by default. SBValue is set up to always wrap a synthetic value when one is available.
      A new setting enable-synthetic-value is provided on the target to disable this behavior.
      There also is a new GetNonSyntheticValue() API call on SBValue to go back from synthetic to non-synthetic. There is no call to go from non-synthetic to synthetic.
      The test suite has been changed accordingly.
      Fallout from changes to type searching: an hack has to be played to make it possible to use maps that contain std::string due to the special name replacement operated by clang
      Fixing a test case that was using libstdcpp instead of libc++ - caught as a consequence of said changes to type searching
      
      llvm-svn: 153495
      c5bc412c
    • Greg Clayton's avatar
      <rdar://problem/11113279> · 84db9105
      Greg Clayton authored
      Fixed type lookups to "do the right thing". Prior to this fix, looking up a type using "foo::bar" would result in a type list that contains all types that had "bar" as a basename unless the symbol file was able to match fully qualified names (which our DWARF parser does not). 
      
      This fix will allow type matches to be made based on the basename and then have the types that don't match filtered out. Types by name can be fully qualified, or partially qualified with the new "bool exact_match" parameter to the Module::FindTypes() method.
      
      This fixes some issue that we discovered with dynamic type resolution as well as improves the overall type lookups in LLDB.
      
      llvm-svn: 153482
      84db9105
  12. Mar 25, 2012
  13. Mar 24, 2012
    • Enrico Granata's avatar
      Adding a new API call IsTypeComplete() to SBType. This call is meant to check... · 86027e95
      Enrico Granata authored
      Adding a new API call IsTypeComplete() to SBType. This call is meant to check if the type has been previously completed or not (which is mostly interesting from a performance point of view)
      
      Adding a test case that checks that we do not complete types before due time. This should help us track cases similar to the cascading data formatters.
      
      llvm-svn: 153363
      86027e95
  14. Mar 22, 2012
  15. Mar 20, 2012
    • Johnny Chen's avatar
      Add a '-E' option to the test driver for the purpose of specifying some extra CFLAGS · e344486e
      Johnny Chen authored
      to pass to the toolchain in order to build the inferior programs to be run/debugged
      duirng the test suite.  The architecture might dictate some special CFLAGS which are
      more easily specified in a central place (like the command line) instead of inside
      make rules.
      
      For Example,
      
      ./dotest.py -v -r /shared/phone -A armv7 -E "-isysroot your_sdk_root" functionalities/watchpoint/hello_watchpoint
      
      will relocate the particular test directory ('functionalities/watchpoint/hello_watchpoint' in this case) to a
      new directory named '/shared/phone'.  The particular incarnation of the architecture-compiler combination of the
      test support files are therefore to be found under:
      
      /shared/phone.arch=armv7-compiler=clang/functionalities/watchpoint/hello_watchpoint
      
      The building of the inferior programs under testing is now working.
      
      The actual launching/debugging of the inferior programs are not yet working,
      neither is the setting of a watchpoint on the phone.
      
      llvm-svn: 153070
      e344486e
  16. Mar 19, 2012
    • Enrico Granata's avatar
      Massive enumeration name changes: a number of enums in ValueObject were not... · 86cc9829
      Enrico Granata authored
      Massive enumeration name changes: a number of enums in ValueObject were not following the naming pattern
      Changes to synthetic children:
       - the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points
         this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed
       - making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly)
         claim to itself be synthetic
       - cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible
       - major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself
       - removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place)
      Some clean ups to the summary generation code
      Centralized the code that clears out user-visible strings and data in ValueObject
      More efficient summaries for libc++ containers
      
      llvm-svn: 153061
      86cc9829
  17. Mar 16, 2012
  18. Mar 15, 2012
  19. Mar 14, 2012
  20. Mar 13, 2012
    • Enrico Granata's avatar
      Changed several of the Cocoa formatters to match the output style that Xcode... · 8c69c96d
      Enrico Granata authored
      Changed several of the Cocoa formatters to match the output style that Xcode uses internally to provide summaries
      This has been done for those summaries where the difference is only cosmetic (e.g. naming things as items instead of values, ...)
      The LLDB output style has been preserved when it provides more information (e.g. telling the type as well as the value of an NSNumber)
      
      Test cases have been updated to reflect the updated output style where necessary
      
      llvm-svn: 152592
      8c69c96d
  21. Mar 12, 2012
    • Enrico Granata's avatar
      Added formatters for libc++ (http://libcxx.llvm.org): · c7f87306
      Enrico Granata authored
       std::string has a summary provider
       std::vector std::list and std::map have both a summary and a synthetic children provider
      Given the usage of a custom namespace (std::__1::classname) for the implementation of libc++, we keep both libstdcpp and libc++ formatters enabled at the same time since that raises no conflicts and enabled for seamless transition between the two
      The formatters for libc++ reside in a libcxx category, and are loaded from libcxx.py (to be found in examples/synthetic)
      
      The formatters-stl test cases have been divided to be separate for libcxx and libstdcpp. This separation is necessary because
       (a) we need different compiler flags for libc++ than for libstdcpp
       (b) libc++ inlines a lot more than libstdcpp and some code changes were required to accommodate this difference
      
      llvm-svn: 152570
      c7f87306
    • Sean Callanan's avatar
      Disabled the i386 tests pending fixes in the JIT. · ddcda28f
      Sean Callanan authored
      llvm-svn: 152568
      ddcda28f
  22. Mar 09, 2012
    • Johnny Chen's avatar
      Add the capability on OS X to utilize 'xcrun' to locate the compilers used for... · 934c05d2
      Johnny Chen authored
      Add the capability on OS X to utilize 'xcrun' to locate the compilers used for building the inferior programs
      to be debugged while running the test suite.  By default, compilers is set to ['clang'] and can be overridden
      using the "-C compilerA^compilerB" option.
      
      llvm-svn: 152367
      934c05d2
    • Johnny Chen's avatar
      Change the test driver so that, by default, it takes into consideration of... · 5a9a9883
      Johnny Chen authored
      Change the test driver so that, by default, it takes into consideration of both 'x86_64' and 'i386' architectures
      when building the inferior programs.
      
      Example:
      
      /Volumes/data/lldb/svn/ToT/test $ ./dotest.py -v functionalities/watchpoint
      LLDB build dir: /Volumes/data/lldb/svn/ToT/build/Debug
      LLDB-123
      Path: /Volumes/data/lldb/svn/ToT
      URL: https://johnny@llvm.org/svn/llvm-project/lldb/trunk
      Repository Root: https://johnny@llvm.org/svn/llvm-project
      Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
      Revision: 152244
      Node Kind: directory
      Schedule: normal
      Last Changed Author: gclayton
      Last Changed Rev: 152244
      Last Changed Date: 2012-03-07 13:03:09 -0800 (Wed, 07 Mar 2012)
      
      
      
      Session logs for test failures/errors/unexpected successes will go into directory '2012-03-08-16_43_51'
      Command invoked: python ./dotest.py -v functionalities/watchpoint
      
      Configuration: arch=x86_64
      ----------------------------------------------------------------------
      Collected 21 tests
      
       1: test_hello_watchlocation_with_dsym (TestWatchLocation.HelloWatchLocationTestCase)
          Test watching a location with '-x size' option. ... ok
       2: test_hello_watchlocation_with_dwarf (TestWatchLocation.HelloWatchLocationTestCase)
          Test watching a location with '-x size' option. ... ok
       3: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
          Test a simple sequence of watchpoint creation and watchpoint hit. ... ok
       4: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
          Test a simple sequence of watchpoint creation and watchpoint hit. ... ok
       5: test_watchpoint_multiple_threads_with_dsym (TestWatchpointMultipleThreads.WatchpointForMultipleThreadsTestCase)
          Test that lldb watchpoint works for multiple threads. ... ok
       6: test_watchpoint_multiple_threads_with_dwarf (TestWatchpointMultipleThreads.WatchpointForMultipleThreadsTestCase)
          Test that lldb watchpoint works for multiple threads. ... ok
       7: test_rw_disable_after_first_stop__with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint but disable it after the first stop. ... ok
       8: test_rw_disable_after_first_stop_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint but disable it after the first stop. ... ok
       9: test_rw_disable_then_enable_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint, disable initially, then enable it. ... ok
      10: test_rw_disable_then_enable_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint, disable initially, then enable it. ... ok
      11: test_rw_watchpoint_delete_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test delete watchpoint and expect not to stop for watchpoint. ... ok
      12: test_rw_watchpoint_delete_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test delete watchpoint and expect not to stop for watchpoint. ... ok
      13: test_rw_watchpoint_set_ignore_count_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test watchpoint ignore count and expect to not to stop at all. ... ok
      14: test_rw_watchpoint_set_ignore_count_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test watchpoint ignore count and expect to not to stop at all. ... ok
      15: test_rw_watchpoint_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint and expect to stop two times. ... ok
      16: test_rw_watchpoint_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint and expect to stop two times. ... ok
      17: test_watchpoint_cond_with_dsym (TestWatchpointConditionCmd.WatchpointConditionCmdTestCase)
          Test watchpoint condition. ... ok
      18: test_watchpoint_cond_with_dwarf (TestWatchpointConditionCmd.WatchpointConditionCmdTestCase)
          Test watchpoint condition. ... ok
      19: test_watchlocation_with_dsym_using_watchpoint_set (TestWatchLocationWithWatchSet.WatchLocationUsingWatchpointSetTestCase)
          Test watching a location with 'watchpoint set expression -w write -x size' option. ... ok
      20: test_watchlocation_with_dwarf_using_watchpoint_set (TestWatchLocationWithWatchSet.WatchLocationUsingWatchpointSetTestCase)
          Test watching a location with 'watchpoint set expression -w write -x size' option. ... ok
      21: test_error_cases_with_watchpoint_set (TestWatchpointSetErrorCases.WatchpointSetErrorTestCase)
          Test error cases with the 'watchpoint set' command. ... ok
      
      ----------------------------------------------------------------------
      Ran 21 tests in 74.590s
      
      OK
      
      Configuration: arch=i386
      ----------------------------------------------------------------------
      Collected 21 tests
      
       1: test_hello_watchlocation_with_dsym (TestWatchLocation.HelloWatchLocationTestCase)
          Test watching a location with '-x size' option. ... ok
       2: test_hello_watchlocation_with_dwarf (TestWatchLocation.HelloWatchLocationTestCase)
          Test watching a location with '-x size' option. ... ok
       3: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
          Test a simple sequence of watchpoint creation and watchpoint hit. ... ok
       4: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
          Test a simple sequence of watchpoint creation and watchpoint hit. ... ok
       5: test_watchpoint_multiple_threads_with_dsym (TestWatchpointMultipleThreads.WatchpointForMultipleThreadsTestCase)
          Test that lldb watchpoint works for multiple threads. ... ok
       6: test_watchpoint_multiple_threads_with_dwarf (TestWatchpointMultipleThreads.WatchpointForMultipleThreadsTestCase)
          Test that lldb watchpoint works for multiple threads. ... ok
       7: test_rw_disable_after_first_stop__with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint but disable it after the first stop. ... ok
       8: test_rw_disable_after_first_stop_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint but disable it after the first stop. ... ok
       9: test_rw_disable_then_enable_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint, disable initially, then enable it. ... ok
      10: test_rw_disable_then_enable_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint, disable initially, then enable it. ... ok
      11: test_rw_watchpoint_delete_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test delete watchpoint and expect not to stop for watchpoint. ... ok
      12: test_rw_watchpoint_delete_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test delete watchpoint and expect not to stop for watchpoint. ... ok
      13: test_rw_watchpoint_set_ignore_count_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test watchpoint ignore count and expect to not to stop at all. ... ok
      14: test_rw_watchpoint_set_ignore_count_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test watchpoint ignore count and expect to not to stop at all. ... ok
      15: test_rw_watchpoint_with_dsym (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint and expect to stop two times. ... ok
      16: test_rw_watchpoint_with_dwarf (TestWatchpointCommands.WatchpointCommandsTestCase)
          Test read_write watchpoint and expect to stop two times. ... ok
      17: test_watchpoint_cond_with_dsym (TestWatchpointConditionCmd.WatchpointConditionCmdTestCase)
          Test watchpoint condition. ... ok
      18: test_watchpoint_cond_with_dwarf (TestWatchpointConditionCmd.WatchpointConditionCmdTestCase)
          Test watchpoint condition. ... ok
      19: test_watchlocation_with_dsym_using_watchpoint_set (TestWatchLocationWithWatchSet.WatchLocationUsingWatchpointSetTestCase)
          Test watching a location with 'watchpoint set expression -w write -x size' option. ... ok
      20: test_watchlocation_with_dwarf_using_watchpoint_set (TestWatchLocationWithWatchSet.WatchLocationUsingWatchpointSetTestCase)
          Test watching a location with 'watchpoint set expression -w write -x size' option. ... ok
      21: test_error_cases_with_watchpoint_set (TestWatchpointSetErrorCases.WatchpointSetErrorTestCase)
          Test error cases with the 'watchpoint set' command. ... ok
      
      ----------------------------------------------------------------------
      Ran 21 tests in 67.059s
      
      OK
      
      llvm-svn: 152357
      5a9a9883
  23. Mar 08, 2012
    • Sean Callanan's avatar
      Updated the revision of LLVM/Clang used by LLDB. · 226b70c1
      Sean Callanan authored
      This takes two important changes:
      
      - Calling blocks is now supported.  You need to
        cast their return values, but that works fine.
      
      - We now can correctly run JIT-compiled
        expressions that use floating-point numbers.
      
      Also, we have taken a fix that allows us to
      ignore access control in Objective-C as in C++.
      
      llvm-svn: 152286
      226b70c1
  24. Mar 07, 2012
Loading