47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # Test to check if machine function splitter still produces the right backtraces
 | |
| # with lldb when a function is split into a hot and cold part and the cold part
 | |
| # is executed.  The cold part has the same function symbol name but with a
 | |
| # ".cold" suffix and this test checks that the back trace is clear.
 | |
| 
 | |
| # UNSUPPORTED: system-darwin, system-windows
 | |
| # REQUIRES: target-x86_64
 | |
| # REQUIRES: lld
 | |
| 
 | |
| # RUN: split-file %s %t.split
 | |
| #
 | |
| # RUN: %clang_host %p/Inputs/split-machine-functions.ll -o %t
 | |
| # RUN: %lldb %t -s %t.split/commands -o exit | FileCheck  %s --check-prefix=DEFAULT
 | |
| #
 | |
| # RUN: %clang_host %p/Inputs/split-machine-functions.ll -fsplit-machine-functions -o %t
 | |
| # RUN: %lldb %t -s %t.split/commands -o exit | FileCheck  %s --check-prefix=SPLIT
 | |
| #
 | |
| # Test a permutation where foo.cold is very far from foo.  The default ordering does not
 | |
| # ensure that there will be a gap between foo and foo.cold.  Using a symbol ordering
 | |
| # file guarantees this
 | |
| # RUN: %clang_host %p/Inputs/split-machine-functions.ll -fsplit-machine-functions -o %t -fuse-ld=lld -Wl,--symbol-ordering-file,%t.split/sym_order_1.txt -Wl,--warn-symbol-ordering -Wl,--fatal-warnings
 | |
| # RUN: %lldb %t -s %t.split/commands -o exit | FileCheck  %s --check-prefix=SPLIT
 | |
| 
 | |
| #--- commands
 | |
| breakpoint set -n bar
 | |
| # DEFAULT: Breakpoint 1: where = {{.*}}`bar
 | |
| # SPLIT: Breakpoint 1: where = {{.*}}`bar
 | |
| 
 | |
| process launch
 | |
| # DEFAULT: stop reason = breakpoint 1.1
 | |
| # SPLIT: stop reason = breakpoint 1.1
 | |
| 
 | |
| thread backtrace
 | |
| # DEFAULT: frame #0: {{.*}}`bar
 | |
| # DEFAULT: frame #1: {{.*}}`foo() +
 | |
| # DEFAULT: frame #2: {{.*}}`main +
 | |
| # SPLIT: frame #0: {{.*}}`bar
 | |
| # SPLIT: frame #1: {{.*}}`foo() (.cold) +
 | |
| # SPLIT: frame #2: {{.*}}`main +
 | |
| 
 | |
| #--- sym_order_1.txt
 | |
| _Z3foov
 | |
| main
 | |
| _Z3barv
 | |
| _Z3bazv
 | |
| _Z3foov.cold
 |