| # Debug registers are currently printed only on FreeBSD. |
| # REQUIRES: system-freebsd |
| # REQUIRES: native && (target-x86 || target-x86_64) && dbregs-set |
| # RUN: %clangxx_host -g %p/Inputs/x86-db-read.cpp -o %t |
| # RUN: %lldb -b -s %s %t | FileCheck %s |
| process launch |
| # CHECK: Process {{[0-9]+}} stopped |
| |
| watchpoint set variable -w write g_8w |
| # CHECK: Watchpoint created: Watchpoint 1: addr = 0x{{[0-9a-f]*}} size = 1 state = enabled type = w |
| watchpoint set variable -w read_write g_16rw |
| # CHECK: Watchpoint created: Watchpoint 2: addr = 0x{{[0-9a-f]*}} size = 2 state = enabled type = rw |
| watchpoint set variable -w write g_32w |
| # CHECK: Watchpoint created: Watchpoint 3: addr = 0x{{[0-9a-f]*}} size = 4 state = enabled type = w |
| watchpoint set variable -w read_write g_32rw |
| # CHECK: Watchpoint created: Watchpoint 4: addr = 0x{{[0-9a-f]*}} size = 4 state = enabled type = rw |
| |
| print &g_8w |
| # CHECK: (uint8_t *) $0 = [[VAR8W:0x[0-9a-f]*]] |
| print &g_16rw |
| # CHECK: (uint16_t *) $1 = [[VAR16RW:0x[0-9a-f]*]] |
| print &g_32w |
| # CHECK: (uint32_t *) $2 = [[VAR32W:0x[0-9a-f]*]] |
| print &g_32rw |
| # CHECK: (uint32_t *) $3 = [[VAR64RW:0x[0-9a-f]*]] |
| |
| register read --all |
| # CHECK-DAG: dr0 = [[VAR8W]] |
| # CHECK-DAG: dr1 = [[VAR16RW]] |
| # CHECK-DAG: dr2 = [[VAR32W]] |
| # CHECK-DAG: dr3 = [[VAR64RW]] |
| # CHECK-DAG: dr6 = 0x{{(00000000)?}}ffff0ff0 |
| # CHECK-DAG: dr7 = 0x{{(00000000)?}}fd7104aa |
| |
| process continue |
| # CHECK: Process {{[0-9]+}} exited with status = 0 |