reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
#include "lldb/API/SBCommandInterpreter.h"
#include "lldb/API/SBCommandReturnObject.h"
#include "lldb/API/SBDebugger.h"

using namespace lldb;

static SBCommandReturnObject subcommand(SBDebugger &dbg, const char *cmd) {
  SBCommandReturnObject Result;
  dbg.GetCommandInterpreter().HandleCommand(cmd, Result);
  return Result;
}

class CommandCrasher : public SBCommandPluginInterface {
public:
  bool DoExecute(SBDebugger dbg, char **command,
                 SBCommandReturnObject &result) {
    // Test assignment from a different SBCommandReturnObject instance.
    result = subcommand(dbg, "help");
    // Test also whether self-assignment is handled correctly.
    result = result;
    if (!result.Succeeded())
      return false;
    return true;
  }
};

int main() {
  SBDebugger::Initialize();
  SBDebugger dbg = SBDebugger::Create(false /*source_init_files*/);
  SBCommandInterpreter interp = dbg.GetCommandInterpreter();
  static CommandCrasher crasher;
  interp.AddCommand("crasher", &crasher, nullptr /*help*/);
  SBCommandReturnObject Result;
  dbg.GetCommandInterpreter().HandleCommand("crasher", Result);
}