blob: 72fd02874623141c92f84ac48d13287cc060d38c [file] [log] [blame]
/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#ifndef RR_GDB_COMMAND_HANDLER_H_
#define RR_GDB_COMMAND_HANDLER_H_
#include <string>
namespace rr {
class GdbCommand;
class GdbServer;
class Task;
class GdbCommandHandler {
public:
// Declare any registered command with supporting
// wrapper code.
static std::string gdb_macros();
static void register_command(GdbCommand& cmd);
/**
* Process an incoming GDB payload of the following form:
* <command name>:<arg1>:<arg2>:...
*
* NOTE: RR Command are typically sent with the qRRCmd: prefix which
* should of been striped already.
*/
static std::string process_command(GdbServer& gdb_server, Task* t,
std::string payload);
static GdbCommand* command_for_name(const std::string& name);
/**
* Special return value for commands that immediatly end a diversion session
*/
static std::string cmd_end_diversion() {
return std::string("RRCmd_EndDiversion");
}
private:
};
} // namespace rr
#endif