Basic debugger networking.

This commit is contained in:
Ben Vanik
2015-05-23 22:27:43 -07:00
parent 969badd8c3
commit 576d6492dc
51 changed files with 1745 additions and 162 deletions

View File

@@ -0,0 +1,23 @@
include "common.fbs";
namespace xe.debug.proto;
table ListBreakpointsRequest {
}
table ListBreakpointsResponse {
}
table AddBreakpointRequest {
}
table AddBreakpointResponse {
}
table UpdateBreakpointRequest {
}
table UpdateBreakpointResponse {
}
table RemoveBreakpointRequest {
}
table RemoveBreakpointResponse {
}

View File

@@ -0,0 +1,210 @@
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_BREAKPOINTS_XE_DEBUG_PROTO_H_
#define FLATBUFFERS_GENERATED_BREAKPOINTS_XE_DEBUG_PROTO_H_
#include "flatbuffers/flatbuffers.h"
namespace xe {
namespace debug {
namespace proto {
struct ListBreakpointsRequest;
struct ListBreakpointsResponse;
struct AddBreakpointRequest;
struct AddBreakpointResponse;
struct UpdateBreakpointRequest;
struct UpdateBreakpointResponse;
struct RemoveBreakpointRequest;
struct RemoveBreakpointResponse;
struct ListBreakpointsRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct ListBreakpointsRequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
ListBreakpointsRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
ListBreakpointsRequestBuilder &operator=(const ListBreakpointsRequestBuilder &);
flatbuffers::Offset<ListBreakpointsRequest> Finish() {
auto o = flatbuffers::Offset<ListBreakpointsRequest>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<ListBreakpointsRequest> CreateListBreakpointsRequest(flatbuffers::FlatBufferBuilder &_fbb) {
ListBreakpointsRequestBuilder builder_(_fbb);
return builder_.Finish();
}
struct ListBreakpointsResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct ListBreakpointsResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
ListBreakpointsResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
ListBreakpointsResponseBuilder &operator=(const ListBreakpointsResponseBuilder &);
flatbuffers::Offset<ListBreakpointsResponse> Finish() {
auto o = flatbuffers::Offset<ListBreakpointsResponse>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<ListBreakpointsResponse> CreateListBreakpointsResponse(flatbuffers::FlatBufferBuilder &_fbb) {
ListBreakpointsResponseBuilder builder_(_fbb);
return builder_.Finish();
}
struct AddBreakpointRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct AddBreakpointRequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
AddBreakpointRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
AddBreakpointRequestBuilder &operator=(const AddBreakpointRequestBuilder &);
flatbuffers::Offset<AddBreakpointRequest> Finish() {
auto o = flatbuffers::Offset<AddBreakpointRequest>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<AddBreakpointRequest> CreateAddBreakpointRequest(flatbuffers::FlatBufferBuilder &_fbb) {
AddBreakpointRequestBuilder builder_(_fbb);
return builder_.Finish();
}
struct AddBreakpointResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct AddBreakpointResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
AddBreakpointResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
AddBreakpointResponseBuilder &operator=(const AddBreakpointResponseBuilder &);
flatbuffers::Offset<AddBreakpointResponse> Finish() {
auto o = flatbuffers::Offset<AddBreakpointResponse>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<AddBreakpointResponse> CreateAddBreakpointResponse(flatbuffers::FlatBufferBuilder &_fbb) {
AddBreakpointResponseBuilder builder_(_fbb);
return builder_.Finish();
}
struct UpdateBreakpointRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct UpdateBreakpointRequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
UpdateBreakpointRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
UpdateBreakpointRequestBuilder &operator=(const UpdateBreakpointRequestBuilder &);
flatbuffers::Offset<UpdateBreakpointRequest> Finish() {
auto o = flatbuffers::Offset<UpdateBreakpointRequest>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<UpdateBreakpointRequest> CreateUpdateBreakpointRequest(flatbuffers::FlatBufferBuilder &_fbb) {
UpdateBreakpointRequestBuilder builder_(_fbb);
return builder_.Finish();
}
struct UpdateBreakpointResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct UpdateBreakpointResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
UpdateBreakpointResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
UpdateBreakpointResponseBuilder &operator=(const UpdateBreakpointResponseBuilder &);
flatbuffers::Offset<UpdateBreakpointResponse> Finish() {
auto o = flatbuffers::Offset<UpdateBreakpointResponse>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<UpdateBreakpointResponse> CreateUpdateBreakpointResponse(flatbuffers::FlatBufferBuilder &_fbb) {
UpdateBreakpointResponseBuilder builder_(_fbb);
return builder_.Finish();
}
struct RemoveBreakpointRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct RemoveBreakpointRequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
RemoveBreakpointRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
RemoveBreakpointRequestBuilder &operator=(const RemoveBreakpointRequestBuilder &);
flatbuffers::Offset<RemoveBreakpointRequest> Finish() {
auto o = flatbuffers::Offset<RemoveBreakpointRequest>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<RemoveBreakpointRequest> CreateRemoveBreakpointRequest(flatbuffers::FlatBufferBuilder &_fbb) {
RemoveBreakpointRequestBuilder builder_(_fbb);
return builder_.Finish();
}
struct RemoveBreakpointResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct RemoveBreakpointResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
RemoveBreakpointResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
RemoveBreakpointResponseBuilder &operator=(const RemoveBreakpointResponseBuilder &);
flatbuffers::Offset<RemoveBreakpointResponse> Finish() {
auto o = flatbuffers::Offset<RemoveBreakpointResponse>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<RemoveBreakpointResponse> CreateRemoveBreakpointResponse(flatbuffers::FlatBufferBuilder &_fbb) {
RemoveBreakpointResponseBuilder builder_(_fbb);
return builder_.Finish();
}
} // namespace proto
} // namespace debug
} // namespace xe
#endif // FLATBUFFERS_GENERATED_BREAKPOINTS_XE_DEBUG_PROTO_H_

View File

@@ -0,0 +1 @@
namespace xe.debug.proto;

View File

@@ -0,0 +1,3 @@
include "common.fbs";
namespace xe.debug.proto;

View File

@@ -0,0 +1,59 @@
include "breakpoints.fbs";
include "common.fbs";
include "control.fbs";
namespace xe.debug.proto;
enum Foo:byte (bit_flags) {
A,
B,
}
struct StructTest {
a:short;
b:byte;
c:Foo;
}
table TableTest {
st:StructTest;
iv:[ubyte];
name:string (required);
id:uint (key);
}
table AttachRequest {
//
}
table AttachResponse {
// file paths
// mmap name
}
union RequestData {
AttachRequest,
ListBreakpointsRequest,
AddBreakpointRequest,
UpdateBreakpointRequest,
RemoveBreakpointRequest,
}
table Request {
id:uint;
request_data:RequestData;
}
union ResponseData {
AttachResponse,
ListBreakpointsResponse,
AddBreakpointResponse,
UpdateBreakpointResponse,
RemoveBreakpointResponse,
}
table Response {
id:uint;
response_data:ResponseData;
}

View File

@@ -0,0 +1,298 @@
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_MESSAGES_XE_DEBUG_PROTO_H_
#define FLATBUFFERS_GENERATED_MESSAGES_XE_DEBUG_PROTO_H_
#include "flatbuffers/flatbuffers.h"
namespace xe {
namespace debug {
namespace proto {
struct ListBreakpointsRequest;
struct ListBreakpointsResponse;
struct AddBreakpointRequest;
struct AddBreakpointResponse;
struct UpdateBreakpointRequest;
struct UpdateBreakpointResponse;
struct RemoveBreakpointRequest;
struct RemoveBreakpointResponse;
} // namespace proto
} // namespace debug
} // namespace xe
namespace xe {
namespace debug {
namespace proto {
struct StructTest;
struct TableTest;
struct AttachRequest;
struct AttachResponse;
struct Request;
struct Response;
enum Foo {
Foo_A = 1,
Foo_B = 2
};
inline const char **EnumNamesFoo() {
static const char *names[] = { "A", "B", nullptr };
return names;
}
inline const char *EnumNameFoo(Foo e) { return EnumNamesFoo()[e - Foo_A]; }
enum RequestData {
RequestData_NONE = 0,
RequestData_AttachRequest = 1,
RequestData_ListBreakpointsRequest = 2,
RequestData_AddBreakpointRequest = 3,
RequestData_UpdateBreakpointRequest = 4,
RequestData_RemoveBreakpointRequest = 5
};
inline const char **EnumNamesRequestData() {
static const char *names[] = { "NONE", "AttachRequest", "ListBreakpointsRequest", "AddBreakpointRequest", "UpdateBreakpointRequest", "RemoveBreakpointRequest", nullptr };
return names;
}
inline const char *EnumNameRequestData(RequestData e) { return EnumNamesRequestData()[e]; }
inline bool VerifyRequestData(flatbuffers::Verifier &verifier, const void *union_obj, RequestData type);
enum ResponseData {
ResponseData_NONE = 0,
ResponseData_AttachResponse = 1,
ResponseData_ListBreakpointsResponse = 2,
ResponseData_AddBreakpointResponse = 3,
ResponseData_UpdateBreakpointResponse = 4,
ResponseData_RemoveBreakpointResponse = 5
};
inline const char **EnumNamesResponseData() {
static const char *names[] = { "NONE", "AttachResponse", "ListBreakpointsResponse", "AddBreakpointResponse", "UpdateBreakpointResponse", "RemoveBreakpointResponse", nullptr };
return names;
}
inline const char *EnumNameResponseData(ResponseData e) { return EnumNamesResponseData()[e]; }
inline bool VerifyResponseData(flatbuffers::Verifier &verifier, const void *union_obj, ResponseData type);
MANUALLY_ALIGNED_STRUCT(2) StructTest FLATBUFFERS_FINAL_CLASS {
private:
int16_t a_;
int8_t b_;
int8_t c_;
public:
StructTest(int16_t a, int8_t b, Foo c)
: a_(flatbuffers::EndianScalar(a)), b_(flatbuffers::EndianScalar(b)), c_(flatbuffers::EndianScalar(static_cast<int8_t>(c))) { }
int16_t a() const { return flatbuffers::EndianScalar(a_); }
int8_t b() const { return flatbuffers::EndianScalar(b_); }
Foo c() const { return static_cast<Foo>(flatbuffers::EndianScalar(c_)); }
};
STRUCT_END(StructTest, 4);
struct TableTest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
const StructTest *st() const { return GetStruct<const StructTest *>(4); }
const flatbuffers::Vector<uint8_t> *iv() const { return GetPointer<const flatbuffers::Vector<uint8_t> *>(6); }
const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(8); }
uint32_t id() const { return GetField<uint32_t>(10, 0); }
bool KeyCompareLessThan(const TableTest *o) const { return id() < o->id(); }
int KeyCompareWithValue(uint32_t val) const { return id() < val ? -1 : id() > val; }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<StructTest>(verifier, 4 /* st */) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* iv */) &&
verifier.Verify(iv()) &&
VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, 8 /* name */) &&
verifier.Verify(name()) &&
VerifyField<uint32_t>(verifier, 10 /* id */) &&
verifier.EndTable();
}
};
struct TableTestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_st(const StructTest *st) { fbb_.AddStruct(4, st); }
void add_iv(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> iv) { fbb_.AddOffset(6, iv); }
void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(8, name); }
void add_id(uint32_t id) { fbb_.AddElement<uint32_t>(10, id, 0); }
TableTestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
TableTestBuilder &operator=(const TableTestBuilder &);
flatbuffers::Offset<TableTest> Finish() {
auto o = flatbuffers::Offset<TableTest>(fbb_.EndTable(start_, 4));
fbb_.Required(o, 8); // name
return o;
}
};
inline flatbuffers::Offset<TableTest> CreateTableTest(flatbuffers::FlatBufferBuilder &_fbb,
const StructTest *st = 0,
flatbuffers::Offset<flatbuffers::Vector<uint8_t>> iv = 0,
flatbuffers::Offset<flatbuffers::String> name = 0,
uint32_t id = 0) {
TableTestBuilder builder_(_fbb);
builder_.add_id(id);
builder_.add_name(name);
builder_.add_iv(iv);
builder_.add_st(st);
return builder_.Finish();
}
struct AttachRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct AttachRequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
AttachRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
AttachRequestBuilder &operator=(const AttachRequestBuilder &);
flatbuffers::Offset<AttachRequest> Finish() {
auto o = flatbuffers::Offset<AttachRequest>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<AttachRequest> CreateAttachRequest(flatbuffers::FlatBufferBuilder &_fbb) {
AttachRequestBuilder builder_(_fbb);
return builder_.Finish();
}
struct AttachResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
verifier.EndTable();
}
};
struct AttachResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
AttachResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
AttachResponseBuilder &operator=(const AttachResponseBuilder &);
flatbuffers::Offset<AttachResponse> Finish() {
auto o = flatbuffers::Offset<AttachResponse>(fbb_.EndTable(start_, 0));
return o;
}
};
inline flatbuffers::Offset<AttachResponse> CreateAttachResponse(flatbuffers::FlatBufferBuilder &_fbb) {
AttachResponseBuilder builder_(_fbb);
return builder_.Finish();
}
struct Request FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
uint32_t id() const { return GetField<uint32_t>(4, 0); }
RequestData request_data_type() const { return static_cast<RequestData>(GetField<uint8_t>(6, 0)); }
const void *request_data() const { return GetPointer<const void *>(8); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<uint32_t>(verifier, 4 /* id */) &&
VerifyField<uint8_t>(verifier, 6 /* request_data_type */) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* request_data */) &&
VerifyRequestData(verifier, request_data(), request_data_type()) &&
verifier.EndTable();
}
};
struct RequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_id(uint32_t id) { fbb_.AddElement<uint32_t>(4, id, 0); }
void add_request_data_type(RequestData request_data_type) { fbb_.AddElement<uint8_t>(6, static_cast<uint8_t>(request_data_type), 0); }
void add_request_data(flatbuffers::Offset<void> request_data) { fbb_.AddOffset(8, request_data); }
RequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
RequestBuilder &operator=(const RequestBuilder &);
flatbuffers::Offset<Request> Finish() {
auto o = flatbuffers::Offset<Request>(fbb_.EndTable(start_, 3));
return o;
}
};
inline flatbuffers::Offset<Request> CreateRequest(flatbuffers::FlatBufferBuilder &_fbb,
uint32_t id = 0,
RequestData request_data_type = RequestData_NONE,
flatbuffers::Offset<void> request_data = 0) {
RequestBuilder builder_(_fbb);
builder_.add_request_data(request_data);
builder_.add_id(id);
builder_.add_request_data_type(request_data_type);
return builder_.Finish();
}
struct Response FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
uint32_t id() const { return GetField<uint32_t>(4, 0); }
ResponseData response_data_type() const { return static_cast<ResponseData>(GetField<uint8_t>(6, 0)); }
const void *response_data() const { return GetPointer<const void *>(8); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<uint32_t>(verifier, 4 /* id */) &&
VerifyField<uint8_t>(verifier, 6 /* response_data_type */) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 8 /* response_data */) &&
VerifyResponseData(verifier, response_data(), response_data_type()) &&
verifier.EndTable();
}
};
struct ResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_id(uint32_t id) { fbb_.AddElement<uint32_t>(4, id, 0); }
void add_response_data_type(ResponseData response_data_type) { fbb_.AddElement<uint8_t>(6, static_cast<uint8_t>(response_data_type), 0); }
void add_response_data(flatbuffers::Offset<void> response_data) { fbb_.AddOffset(8, response_data); }
ResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
ResponseBuilder &operator=(const ResponseBuilder &);
flatbuffers::Offset<Response> Finish() {
auto o = flatbuffers::Offset<Response>(fbb_.EndTable(start_, 3));
return o;
}
};
inline flatbuffers::Offset<Response> CreateResponse(flatbuffers::FlatBufferBuilder &_fbb,
uint32_t id = 0,
ResponseData response_data_type = ResponseData_NONE,
flatbuffers::Offset<void> response_data = 0) {
ResponseBuilder builder_(_fbb);
builder_.add_response_data(response_data);
builder_.add_id(id);
builder_.add_response_data_type(response_data_type);
return builder_.Finish();
}
inline bool VerifyRequestData(flatbuffers::Verifier &verifier, const void *union_obj, RequestData type) {
switch (type) {
case RequestData_NONE: return true;
case RequestData_AttachRequest: return verifier.VerifyTable(reinterpret_cast<const AttachRequest *>(union_obj));
case RequestData_ListBreakpointsRequest: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::ListBreakpointsRequest *>(union_obj));
case RequestData_AddBreakpointRequest: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::AddBreakpointRequest *>(union_obj));
case RequestData_UpdateBreakpointRequest: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::UpdateBreakpointRequest *>(union_obj));
case RequestData_RemoveBreakpointRequest: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::RemoveBreakpointRequest *>(union_obj));
default: return false;
}
}
inline bool VerifyResponseData(flatbuffers::Verifier &verifier, const void *union_obj, ResponseData type) {
switch (type) {
case ResponseData_NONE: return true;
case ResponseData_AttachResponse: return verifier.VerifyTable(reinterpret_cast<const AttachResponse *>(union_obj));
case ResponseData_ListBreakpointsResponse: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::ListBreakpointsResponse *>(union_obj));
case ResponseData_AddBreakpointResponse: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::AddBreakpointResponse *>(union_obj));
case ResponseData_UpdateBreakpointResponse: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::UpdateBreakpointResponse *>(union_obj));
case ResponseData_RemoveBreakpointResponse: return verifier.VerifyTable(reinterpret_cast<const xe::debug::proto::RemoveBreakpointResponse *>(union_obj));
default: return false;
}
}
} // namespace proto
} // namespace debug
} // namespace xe
#endif // FLATBUFFERS_GENERATED_MESSAGES_XE_DEBUG_PROTO_H_

View File

@@ -1,27 +0,0 @@
namespace Xenia.Debugger.Proto;
attribute "priority"; // ?
enum Foo:byte (bit_flags) {
A,
B,
}
struct StructTest {
a:short;
b:byte;
c:Foo;
}
table TableTest {
st:StructTest;
iv:[ubyte];
name:string (required);
id:uint (required, key);
}
union UnionTest {
TableTest,
}
root_type UnionTest;