# 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
