#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; return result.Succeeded(); } }; 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); }