Fleshing out debugger types.

This commit is contained in:
Ben Vanik
2015-05-24 13:43:15 -07:00
parent da655d15b3
commit e55be7d2c9
103 changed files with 4008 additions and 2025 deletions

View File

@@ -25,7 +25,10 @@
// Autogenerated Flatbuffers files:
#include "xenia/debug/proto/breakpoints_generated.h"
#include "xenia/debug/proto/common_generated.h"
#include "xenia/debug/proto/control_generated.h"
#include "xenia/debug/proto/messages_generated.h"
#include "xenia/debug/proto/modules_generated.h"
DEFINE_string(debug_session_path, "", "Debug output path.");
DEFINE_int32(debug_port, 19000, "Port the debugger listens on.");
@@ -211,21 +214,62 @@ void Debugger::OnMessage(std::vector<uint8_t> buffer) {
//
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_AddBreakpointRequest: {
response_data_type = proto::ResponseData_RemoveBreakpointResponse;
auto response_data = proto::AddBreakpointResponseBuilder(fbb);
case proto::RequestData_AddBreakpointsRequest: {
response_data_type = proto::ResponseData_RemoveBreakpointsResponse;
auto response_data = proto::AddBreakpointsResponseBuilder(fbb);
//
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_UpdateBreakpointRequest: {
response_data_type = proto::ResponseData_UpdateBreakpointResponse;
auto response_data = proto::UpdateBreakpointResponseBuilder(fbb);
case proto::RequestData_UpdateBreakpointsRequest: {
response_data_type = proto::ResponseData_UpdateBreakpointsResponse;
auto response_data = proto::UpdateBreakpointsResponseBuilder(fbb);
//
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_RemoveBreakpointRequest: {
response_data_type = proto::ResponseData_AddBreakpointResponse;
auto response_data = proto::RemoveBreakpointResponseBuilder(fbb);
case proto::RequestData_RemoveBreakpointsRequest: {
response_data_type = proto::ResponseData_AddBreakpointsResponse;
auto response_data = proto::RemoveBreakpointsResponseBuilder(fbb);
//
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_ListModulesRequest: {
response_data_type = proto::ResponseData_ListModulesResponse;
auto response_data = proto::ListModulesResponseBuilder(fbb);
//
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_GetModuleRequest: {
response_data_type = proto::ResponseData_GetModuleResponse;
auto response_data = proto::GetModuleResponseBuilder(fbb);
//
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_StopRequest: {
response_data_type = proto::ResponseData_StopResponse;
auto response_data = proto::StopResponseBuilder(fbb);
// TODO(benvanik): gracefully die?
exit(1);
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_BreakRequest: {
response_data_type = proto::ResponseData_BreakResponse;
auto response_data = proto::BreakResponseBuilder(fbb);
//
SuspendAllThreads();
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_ContinueRequest: {
response_data_type = proto::ResponseData_ContinueResponse;
auto response_data = proto::ContinueResponseBuilder(fbb);
//
ResumeAllThreads();
response_data_offset = response_data.Finish().Union();
} break;
case proto::RequestData_StepRequest: {
response_data_type = proto::ResponseData_StepResponse;
auto response_data = proto::StepResponseBuilder(fbb);
//
response_data_offset = response_data.Finish().Union();
} break;