| # REQUIRES: target-x86 | |
| # RUN: %clang_host -g -O0 %S/Inputs/main.c -o %t.out | |
| # RUN: %lldb -b -o "breakpoint set --name main" \ | |
| # RUN: -o run \ | |
| # RUN: -o "register read rip r10d rflags" \ | |
| # RUN: -o "register read -A rsp rbp rip" \ | |
| # RUN: -o "register read -s 0" \ | |
| # RUN: -o "register read --all" \ | |
| # RUN: %t.out | FileCheck --strict-whitespace %s | |
| # CHECK: (lldb) register read rip r10d rflags | |
| # CHECK-NEXT: {{^ rip = }} | |
| # CHECK-NEXT: {{^ r10d = }} | |
| # CHECK-NEXT: {{^ rflags = }} | |
| # CHECK: (lldb) register read -A rsp rbp rip | |
| # CHECK-NEXT: {{^ rsp/sp = }} | |
| # CHECK-NEXT: {{^ rbp/fp = }} | |
| # CHECK-NEXT: {{^ rip/pc = }} | |
| ## Registers within a set align to each other. | |
| # CHECK: (lldb) register read -s 0 | |
| # CHECK: General Purpose Registers: | |
| # CHECK: {{^ rsi = }} | |
| # CHECK: {{^ r8 = }} | |
| # CHECK: {{^ rip = }} | |
| # CHECK: {{^ rflags = }} | |
| # CHECK: {{^ cs = }} | |
| # CHECK: {{^ fs_base = }} | |
| # CHECK: {{^ gs_base = }} | |
| # CHECK: {{^ ds = }} | |
| ## Registers within sets are aligned, but not aligned across different sets. | |
| # CHECK: (lldb) register read --all | |
| # CHECK: General Purpose Registers: | |
| # CHECK: {{^ rip = }} | |
| # CHECK: {{^ rflags = }} | |
| # CHECK: {{^ fs_base = }} | |
| # CHECK: Floating Point Registers: | |
| # CHECK: {{^ ftag = }} | |
| # CHECK: {{^ fdp = }} | |
| # CHECK: {{^ mxcsrmask = }} | |
| # CHECK: {{^ xmm10 = }} |