blob: be6f6888a99d50c922ea1e1526a93be533ccb5cd [file] [log] [blame]
//===-- CommandObjectShow.cpp -----------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "CommandObjectShow.h"
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandReturnObject.h"
using namespace lldb;
using namespace lldb_private;
//-------------------------------------------------------------------------
// CommandObjectShow
//-------------------------------------------------------------------------
CommandObjectShow::CommandObjectShow () :
CommandObject ("show",
"Allows the user to see a single debugger setting variable and its value, or lists them all.",
"show [<setting-variable-name>]")
{
}
CommandObjectShow::~CommandObjectShow()
{
}
bool
CommandObjectShow::Execute
(
Args& command,
CommandContext *context,
CommandInterpreter *interpreter,
CommandReturnObject &result
)
{
CommandInterpreter::VariableMap::iterator pos;
if (command.GetArgumentCount())
{
// The user requested to see the value of a particular variable.
const char *var_name = command.GetArgumentAtIndex(0);
StateVariable *var = interpreter->GetStateVariable(var_name);
if (var)
{
var->AppendVariableInformation (result);
result.SetStatus (eReturnStatusSuccessFinishNoResult);
}
else
{
result.AppendErrorWithFormat ("Unrecognized variable '%s'; cannot do 'show' command.\n", var_name);
result.SetStatus (eReturnStatusFailed);
}
}
else
{
// The user didn't specify a particular variable, so show the values of all of them.
interpreter->ShowVariableValues(result);
result.SetStatus (eReturnStatusSuccessFinishNoResult);
}
return result.Succeeded();
}