summaryrefslogtreecommitdiffstats
path: root/lldb/test/conditional_break
Commit message (Collapse)AuthorAgeFilesLines
* Move more top level test dirs to reside under functionalities dir.Johnny Chen2011-06-265-231/+0
| | | | llvm-svn: 133894
* The extra burden for the Python API test case to assign its process object ↵Johnny Chen2011-06-151-5/+5
| | | | | | | | | to self.process in order to have its process cleaned up (terminated) upon tearDown is gone for good. Let's simplify a bunch of Python API test cases. llvm-svn: 133097
* Now that we have added a post-processing step for adding truth value testing toJohnny Chen2011-05-241-3/+3
| | | | | | | those lldb objects which implement the IsValid() method, let's change the rest of the test suite to use the more compact truth value testing pattern (the Python way). llvm-svn: 131970
* For lldbutil.py, Change a bunch of function names to all lower case formats ↵Johnny Chen2011-04-252-3/+3
| | | | | | | | to be consistent. And modify the test cases accordingly. llvm-svn: 130174
* Centralized a lot of the status information for processes,Greg Clayton2011-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | threads, and stack frame down in the lldb_private::Process, lldb_private::Thread, lldb_private::StackFrameList and the lldb_private::StackFrame classes. We had some command line commands that had duplicate versions of the process status output ("thread list" and "process status" for example). Removed the "file" command and placed it where it should have been: "target create". Made an alias for "file" to "target create" so we stay compatible with GDB commands. We can now have multple usable targets in lldb at the same time. This is nice for comparing two runs of a program or debugging more than one binary at the same time. The new command is "target select <target-idx>" and also to see a list of the current targets you can use the new "target list" command. The flow in a debug session can be: (lldb) target create /path/to/exe/a.out (lldb) breakpoint set --name main (lldb) run ... hit breakpoint (lldb) target create /bin/ls (lldb) run /tmp Process 36001 exited with status = 0 (0x00000000) (lldb) target list Current targets: target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) * target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) target select 0 Current targets: * target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) bt * thread #1: tid = 0x2d03, 0x0000000100000b9a a.out`main + 42 at main.c:16, stop reason = breakpoint 1.1 frame #0: 0x0000000100000b9a a.out`main + 42 at main.c:16 frame #1: 0x0000000100000b64 a.out`start + 52 Above we created a target for "a.out" and ran and hit a breakpoint at "main". Then we created a new target for /bin/ls and ran it. Then we listed the targest and selected our original "a.out" program, so we showed two concurent debug sessions going on at the same time. llvm-svn: 129695
* - Changed all the places where CommandObjectReturn was exporting a ↵Jim Ingham2011-02-191-1/+1
| | | | | | | | | | | | | | | | StreamString to just exporting a Stream, and then added GetOutputData & GetErrorData to get the accumulated data. - Added a StreamTee that will tee output to two provided lldb::StreamSP's. - Made the CommandObjectReturn use this so you can Tee the results immediately to the debuggers output file, as well as saving up the results to return when the command is done executing. - HandleCommands now uses this so that if you have a set of commands that continue the target you will see the commands come out as they are processed. - The Driver now uses this to output the command results as you go, which makes the interface more reactive seeming. llvm-svn: 126015
* Modify test scripts to accomodate SBTarget.Launch() API change.Johnny Chen2011-02-031-1/+1
| | | | llvm-svn: 124828
* Deprecated old forms of SBTarget::Launch. There is not just one and noGreg Clayton2011-01-231-3/+3
| | | | | | SWIG renaming done to work around deprecated APIs. llvm-svn: 124075
* Simplify the breakpoint command function. Instead of fetching the command ↵Johnny Chen2010-12-221-7/+1
| | | | | | | | interpreter and run the "process continue" command, use the SBProcess.Continue() API. llvm-svn: 122434
* Modify test cases to accomodate Python API change:Johnny Chen2010-12-141-1/+1
| | | | | | | o SBFrame.LookupVar -> FindVariable o SBFrame.LookupVarInScope -> FindValue llvm-svn: 121782
* Add @python_api_test decorator to the remaining Test*.py files.Johnny Chen2010-12-101-0/+2
| | | | llvm-svn: 121448
* For SBTarget.Launch()/LaunchProcess(), there's no need to pass an empty stringJohnny Chen2010-12-081-1/+1
| | | | | | | | | | | | | | as the args and the envs to the launched process. o lldbtest.py: Forgot to check in some assertion messages changes for lldbtest.py. o dotest.py: Also add "api" category to the default lldb log option list. llvm-svn: 121220
* Fix an incorrect comment in main.c and TestConditionalBreak.py.Johnny Chen2010-11-032-2/+2
| | | | | | It should be c's parent frame being a instead of the other way around. llvm-svn: 118198
* Add comment on test class failing for clang as well as llvm-gcc.Johnny Chen2010-11-011-0/+5
| | | | llvm-svn: 117962
* The StateType representation has been changed. Modify the test cases to ↵Johnny Chen2010-10-181-1/+1
| | | | | | accommodate. llvm-svn: 116705
* Use line_number() utility function to find the number from main.c to test ↵Johnny Chen2010-10-152-3/+7
| | | | | | | | against instead of using hard-coded line number. llvm-svn: 116646
* Update do_conditional_break() method impl to use all lldb Python APIs.Johnny Chen2010-10-081-18/+21
| | | | llvm-svn: 116117
* Minor cleanup with added comment.Johnny Chen2010-10-071-5/+6
| | | | llvm-svn: 115955
* Wrapped the subclass-specific cleanup call within a try:except: clause.Johnny Chen2010-09-212-6/+7
| | | | | | And removed the informational output from the conditional_break test case. llvm-svn: 114493
* Changed this breakpoint callback function to print to the stdout instead ofJohnny Chen2010-09-201-4/+4
| | | | | | stderr so as not to disrupt the information emitted by the unittest framework. llvm-svn: 114377
* Added some comments.Johnny Chen2010-09-161-0/+12
| | | | llvm-svn: 114081
* Updated the expected matching string after the recent flurry of check ins.Johnny Chen2010-09-131-2/+2
| | | | llvm-svn: 113748
* Added [-o <one-liner>] to the "breakpoint command add" lldb command to be ableJohnny Chen2010-09-111-1/+1
| | | | | | | | | | | | | | | to specify a one-liner (either scripting or lldb command) inline. Refactored CommandObjectBreakpointCommandAdd::Execute() a little bit and added some comments. Sn now, we use: breakpoint command add -p 1 -o "conditional_break.stop_if_called_from_a()" to specify a Python one-liner as the callback for breakpoint #1. llvm-svn: 113672
* These two files should have been in r113596. Oops!Johnny Chen2010-09-102-0/+34
| | | | llvm-svn: 113598
* Added the capability to specify a one-liner Python script as the callbackJohnny Chen2010-09-101-2/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | command for a breakpoint, for example: (lldb) breakpoint command add -p 1 "conditional_break.stop_if_called_from_a()" The ScriptInterpreter interface has an extra method: /// Set a one-liner as the callback for the breakpoint command. virtual void SetBreakpointCommandCallback (CommandInterpreter &interpreter, BreakpointOptions *bp_options, const char *oneliner); to accomplish the above. Also added a test case to demonstrate lldb's use of breakpoint callback command to stop at function c() only when its immediate caller is function a(). The following session shows the user entering the following commands: 1) command source .lldb (set up executable, breakpoint, and breakpoint command) 2) run (the callback mechanism will skip two breakpoints where c()'s immeidate caller is not a()) 3) bt (to see that indeed c()'s immediate caller is a()) 4) c (to continue and finish the program) test/conditional_break $ ../../build/Debug/lldb (lldb) command source .lldb Executing commands in '.lldb'. (lldb) file a.out Current executable set to 'a.out' (x86_64). (lldb) breakpoint set -n c Breakpoint created: 1: name = 'c', locations = 1 (lldb) script import sys, os (lldb) script sys.path.append(os.path.join(os.getcwd(), os.pardir)) (lldb) script import conditional_break (lldb) breakpoint command add -p 1 "conditional_break.stop_if_called_from_a()" (lldb) run run Launching '/Volumes/data/lldb/svn/trunk/test/conditional_break/a.out' (x86_64) (lldb) Checking call frames... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`a at main.c:25 frame #3: a.out`main at main.c:44 frame #4: a.out`start c called from b Continuing... Checking call frames... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`main at main.c:47 frame #3: a.out`start c called from b Continuing... Checking call frames... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`a at main.c:27 frame #2: a.out`main at main.c:50 frame #3: a.out`start c called from a Stopped at c() with immediate caller as a(). a(1) returns 4 b(2) returns 5 Process 20420 Stopped * thread #1: tid = 0x2e03, 0x0000000100000de8 a.out`c + 7 at main.c:39, stop reason = breakpoint 1.1, queue = com.apple.main-thread 36 37 int c(int val) 38 { 39 -> return val + 3; 40 } 41 42 int main (int argc, char const *argv[]) (lldb) bt bt thread #1: tid = 0x2e03, stop reason = breakpoint 1.1, queue = com.apple.main-thread frame #0: 0x0000000100000de8 a.out`c + 7 at main.c:39 frame #1: 0x0000000100000dbc a.out`a + 44 at main.c:27 frame #2: 0x0000000100000e4b a.out`main + 91 at main.c:50 frame #3: 0x0000000100000d88 a.out`start + 52 (lldb) c c Resuming process 20420 Process 20420 Exited a(3) returns 6 (lldb) llvm-svn: 113596
* Added a lldbutil.py module, which contains utility functions which can be usedJohnny Chen2010-09-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from scripting applications. An example usage from TestConditionalBreak.py is: import lldbutil lldbutil.PrintStackTrace(thread) ./dotest.py -v conditional_break ---------------------------------------------------------------------- Collected 2 tests test_with_dsym (TestConditionalBreak.ConditionalBreakTestCase) Exercise some thread and frame APIs to break if c() is called by a(). ... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`a at main.c:25 frame #3: a.out`main at main.c:44 frame #4: a.out`start Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`main at main.c:47 frame #3: a.out`start Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`a at main.c:27 frame #2: a.out`main at main.c:50 frame #3: a.out`start ok test_with_dwarf (TestConditionalBreak.ConditionalBreakTestCase) Exercise some thread and frame APIs to break if c() is called by a(). ... Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`a at main.c:25 frame #3: a.out`main at main.c:44 frame #4: a.out`start Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`b at main.c:34 frame #2: a.out`main at main.c:47 frame #3: a.out`start Stack trace for thread id=0x2e03 name=None queue=com.apple.main-thread: frame #0: a.out`c at main.c:39 frame #1: a.out`a at main.c:27 frame #2: a.out`main at main.c:50 frame #3: a.out`start ok ---------------------------------------------------------------------- Ran 2 tests in 7.803s OK llvm-svn: 113432
* Minor tweak to add expected matching strings.Johnny Chen2010-09-081-2/+4
| | | | llvm-svn: 113327
* Added a test case which exercises some thread and frame APIs to break only whenJohnny Chen2010-09-083-0/+133
the call site of c() is a(). llvm-svn: 113325
OpenPOWER on IntegriCloud