# UNSUPPORTED: lldb-repro
#
# This tests that the convenience variables are not nil. Given that there is no
# target we only expect the debugger to be valid.
#
# RUN: cat %s | %lldb --script-language lua 2>&1 | FileCheck %s
script
print("lldb.debugger is valid: ", tostring(lldb.debugger:IsValid()))
print("lldb.target is valid: ", tostring(lldb.target:IsValid()))
print("lldb.process is valid: ", tostring(lldb.process:IsValid()))
print("lldb.thread is valid: ", tostring(lldb.thread:IsValid()))
print("lldb.frame is valid: ", tostring(lldb.frame:IsValid()))
# CHECK: debugger is valid: true
# CHECK: target is valid: false
# CHECK: process is valid: false
# CHECK: thread is valid: false
# CHECK: frame is valid: false
