77 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # RUN: %clang_host %p/Inputs/stop-hook.c -g -o %t
 | |
| # Test setting stop-hook per-function
 | |
| # RUN: %lldb -b -s %p/Inputs/stop-hook-1.lldbinit -s %s -f %t \
 | |
| # RUN:      | FileCheck --check-prefix=CHECK --check-prefix=CHECK-FUNC %s
 | |
| # Test setting stop-hook per-line range
 | |
| # RUN: %lldb -b -s %p/Inputs/stop-hook-2.lldbinit -s %s -f %t | FileCheck %s
 | |
| # Test setting stop-hook with multi-line expression
 | |
| # RUN: %lldb -b -s %p/Inputs/stop-hook-3.lldbinit -s %s -f %t | FileCheck %s
 | |
| # This test is not "unsupported" on Windows, but it fails because "expr ptr"
 | |
| # does not evaluate correctly. However, the error message contains the expected
 | |
| # string, so the test "passes" despite the fact that the commands failed
 | |
| # llvm.org/pr40119
 | |
| # UNSUPPORTED: system-windows
 | |
| 
 | |
| break set -f stop-hook.c -p "// Set breakpoint here to test target stop-hook"
 | |
| break set -f stop-hook.c -p "// Another breakpoint which is outside of the stop-hook range"
 | |
| target stop-hook list
 | |
| 
 | |
| # CHECK: Hook: 1
 | |
| # CHECK-NEXT:  State: enabled
 | |
| # CHECK-NEXT:  Specifier:
 | |
| # CHECK-FUNC-NEXT:    Function: b.
 | |
| # CHECK-NEXT:  Commands: 
 | |
| # CHECK-NEXT:    expr ptr
 | |
| 
 | |
| target stop-hook disable
 | |
| 
 | |
| target stop-hook list
 | |
| # CHECK: Hook: 1
 | |
| # CHECK-NEXT:  State: disabled
 | |
| # CHECK-NEXT:  Specifier:
 | |
| # CHECK-FUNC-NEXT:    Function: b.
 | |
| # CHECK-NEXT:  Commands: 
 | |
| # CHECK-NEXT:    expr ptr
 | |
| 
 | |
| target stop-hook enable
 | |
| 
 | |
| target stop-hook list
 | |
| # CHECK: Hook: 1
 | |
| # CHECK-NEXT:  State: enabled
 | |
| # CHECK-NEXT:  Specifier:
 | |
| # CHECK-FUNC-NEXT:    Function: b.
 | |
| # CHECK-NEXT:  Commands: 
 | |
| # CHECK-NEXT:    expr ptr
 | |
| 
 | |
| run
 | |
| # Stopping inside of the stop hook range
 | |
| # CHECK: (lldb) run
 | |
| # CHECK-NEXT: (void *) ${{.*}} = 0x
 | |
| 
 | |
| thread step-over
 | |
| # Stepping inside of the stop hook range
 | |
| # CHECK: (lldb) thread step-over
 | |
| # CHECK-NEXT: (void *) ${{.*}} = 0x
 | |
| # CHECK: ->{{.*}} // We should stop here after stepping.
 | |
| 
 | |
| process continue
 | |
| # Stopping outside of the stop hook range
 | |
| # CHECK: (lldb) process continue
 | |
| # CHECK-NOT: (void *)
 | |
| # CHECK: ->{{.*}} // Another breakpoint which is outside of the stop-hook range.
 | |
| 
 | |
| thread step-over
 | |
| # Stepping inside of the stop hook range
 | |
| # CHECK: (lldb) thread step-over
 | |
| # CHECK-NOT: (void *)
 | |
| 
 | |
| settings set auto-confirm true
 | |
| target stop-hook delete
 | |
| 
 | |
| target stop-hook list
 | |
| # CHECK: (lldb) target stop-hook list
 | |
| # CHECK-NOT: Hook: 1
 | |
| # CHECK: No stop hooks
 | |
| # CHECK-NOT: Hook: 1
 | |
| 
 |