- Apr 13, 2012
-
-
Johnny Chen authored
For the types directory, we were running lldbtest.system() to execute the compiled program on the test host to collect golden output in order to compare with the output of various lldb debugger commands as performed later. This won't work for the remote platform scenario where the architecture of the target and host platforms are different. Modify the AbstractBase class to use lldb to launch the inferior while specifying the output file, from which the golden output is collected and grokked. How to bootstrap and to connect to the remote platform is still being worked at. llvm-svn: 154699
-
Johnny Chen authored
llvm-svn: 154638
-
Johnny Chen authored
llvm-svn: 154636
-
Johnny Chen authored
Fix some test suite errors. TestForwardDecl.py errors were due to bad Makefile.rules, while TestHiddenIvars.py errors due to features only available in modern objc runtime. llvm-svn: 154635
-
- Apr 12, 2012
-
-
Johnny Chen authored
rdar://problem/11031264 llvm-svn: 154573
-
- Apr 07, 2012
-
-
Sean Callanan authored
this file. llvm-svn: 154222
-
- Apr 06, 2012
-
-
Johnny Chen authored
llvm-svn: 154211
-
Johnny Chen authored
Plus some minor cleanup of test method names. Third and final batch is coming. llvm-svn: 154197
-
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
-
- Apr 05, 2012
-
-
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
-
- Apr 04, 2012
-
-
Enrico Granata authored
Adding a new --python-function (-F) option to breakpoint command add. The option allows the user to specify a Python function name instead of a Python oneliner or interactive script input as a breakpoint command llvm-svn: 154026
-
- Apr 03, 2012
-
-
Johnny Chen authored
This is supposed to succeed even with rdar://problem/11166975. llvm-svn: 153919
-
Johnny Chen authored
llvm-svn: 153915
-
- Apr 02, 2012
-
-
Johnny Chen authored
rdar://problem/11167268 llvm-svn: 153891
-
- Mar 30, 2012
-
-
rdar://problem/11024417Enrico Granata authored
Disabling blocks support because of rdar://problem/11024417 - This is hopefully just a temporary countermeasure llvm-svn: 153758
-
- Mar 29, 2012
-
-
Enrico Granata authored
Fixing an issue where Unicode characters in an NSString were printed as escape sequences by the summary provider shipping with LLDB - Added relevant test case code. Bonus points for identifying the source of the quotes :-) llvm-svn: 153624
-
Enrico Granata authored
Fixing an issue where saying 'po foo' made both the summary and the description for foo come out. If one is po'ing something they most probably only care about the description - We will not omit the summary llvm-svn: 153608
-
- Mar 27, 2012
-
-
Enrico Granata authored
llvm-svn: 153541
-
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
-
rdar://problem/11113279Greg 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
-
- Mar 25, 2012
-
-
Eric Christopher authored
llvm-svn: 153416
-
- Mar 24, 2012
-
-
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
-
- Mar 22, 2012
-
-
Enrico Granata authored
This is the feature that allowed the user to have things like: class Base { ... }; class Derived : public Base { ... }; and have formatters defined for Base work automatically for Derived. This feature turned out to be too expensive since it requires completing types. This patch takes care of removing cascading (other than typedefs chain cascading), updating the test suite accordingly, and adding required Cocoa class names to keep the AppKit formatters working llvm-svn: 153272
-
Johnny Chen authored
llvm-svn: 153268
-
- Mar 20, 2012
-
-
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
-
- Mar 19, 2012
-
-
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
-
- Mar 16, 2012
-
-
Johnny Chen authored
Export the APIs submitted by Dawn to the Python bindings. Add a simple test case for the SBModule.compile_unit_iter() API. llvm-svn: 152952
-
Johnny Chen authored
llvm-svn: 152941
-
- Mar 15, 2012
-
-
-
Johnny Chen authored
rdar://problem/11034702 For the time being, skip the relevant disassemble action which resulted in a crash. Minor modification (print out format) to the existing TestDisassembleRawBytes.py test file. llvm-svn: 152822
-
- Mar 14, 2012
-
-
Johnny Chen authored
llvm-svn: 152732
-
- Mar 13, 2012
-
-
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
-
- Mar 12, 2012
-
-
http://libcxx.llvm.orgEnrico 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
-
Sean Callanan authored
llvm-svn: 152568
-
- Mar 09, 2012
-
-
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
-
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
-
- Mar 08, 2012
-
-
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
-
- Mar 07, 2012
-
-
Johnny Chen authored
expression command doesn't handle xmm or stmm registers... o Update ClangASTContext::GetBuiltinTypeForEncodingAndBitSize() to now handle eEncodingVector. o Modify RegisterValue::SetFromMemoryData() to fix the subtle error due to unitialized variables. o Add a test file for "expr $xmm0". llvm-svn: 152190
-
Enrico Granata authored
llvm-svn: 152186
-
Enrico Granata authored
Fixing an issue where a ValueObject had changed its value but the 'value changed' flag was not being set. This was breaking one of our test cases llvm-svn: 152161
-