17 ObjectMapper o(value, path);
18 return o && o.map(
"name", data.
name) && o.map(
"value", data.
value);
27 ObjectMapper o(value, path);
28 return o && o.mapOptional(
"shlib", data.
shlib) &&
38 ObjectMapper o(value, path);
47 ObjectMapper o(value, path);
48 return o && o.map(
"identifier", data.
identifier) &&
49 o.mapOptional(
"by_name", data.
by_name) &&
50 o.mapOptional(
"by_address", data.
by_address) &&
65 ObjectMapper o(value, path);
66 return o && o.map(
"plugin_name", data.
plugin_name) &&
79std::optional<uint64_t>
82 return symbol.
name == symbol_name;
90 ObjectMapper o(value, path);
91 return o && o.map(
"connect_url", data.
connect_url) &&
93 o.map(
"triple", data.
triple) &&
94 o.mapOptional(
"exe_path", data.
exe_path) &&
107 ObjectMapper o(value, path);
108 return o && o.map(
"plugin_name", data.
plugin_name) &&
129 ObjectMapper o(value, path);
130 return o && o.map(
"disable_bp", data.
disable_bp) &&
132 o.mapOptional(
"actions", data.
actions);
141 obj[
"actions"] = *data.
actions;
146 ObjectMapper o(value, path);
147 return o && o.map(
"names", data.
names) &&
153 {
"load_address",
static_cast<int64_t
>(data.
load_address)}};
158 ObjectMapper o(value, path);
159 return o && o.map(
"pathname", data.
pathname) &&
160 o.mapOptional(
"uuid", data.
uuid_str) && o.map(
"load", data.
load) &&
166 o.mapOptional(
"file_size", data.
file_size);
185 ObjectMapper o(value, path);
186 return o && o.map(
"plugin_name", data.
plugin_name) &&
187 o.map(
"full", data.
full);
196 ObjectMapper o(value, path);
A class that represents a running process on the host machine.
llvm::json::Value toJSON(const Diagnostics::Report &report)
Render a diagnostics report as JSON, for diagnostics dump's terminal output.
bool fromJSON(const llvm::json::Value &value, SymbolValue &data, llvm::json::Path path)
Actions to be performed in the native process on behalf of an accelerator plugin.
std::vector< AcceleratorBreakpointInfo > breakpoints
New breakpoints to set. Nothing to set if this is empty.
int64_t identifier
Unique identifier for this action within the plugin.
std::string plugin_name
Unique name identifying the accelerator plugin.
std::optional< AcceleratorConnectionInfo > connect_info
If set, the client should create a new target and connect to the accelerator GDB server described her...
std::string session_name
Human-readable label for the accelerator target.
uint64_t load_address
Load address in the native debug target.
std::string function_name
Function name to set a breakpoint at.
std::optional< std::string > shlib
Optional shared library name to limit the breakpoint scope.
Sent by the client when a plugin-requested breakpoint is hit.
AcceleratorBreakpointInfo breakpoint
std::optional< uint64_t > GetSymbolValue(llvm::StringRef symbol_name) const
std::vector< SymbolValue > symbol_values
Response from the plugin when a breakpoint is hit.
bool disable_bp
Set to true if this breakpoint should be disabled.
std::optional< AcceleratorActions > actions
Optional new actions to perform (e.g. set additional breakpoints).
bool auto_resume_native
Set to true if the native process should automatically resume after the breakpoint is hit.
int64_t identifier
Unique breakpoint ID used to identify this breakpoint in the BreakpointWasHit callback.
std::vector< std::string > symbol_names
Symbol names whose values should be supplied when the breakpoint is hit.
std::optional< AcceleratorBreakpointByAddress > by_address
Breakpoint by load address.
std::optional< AcceleratorBreakpointByName > by_name
Breakpoint by function name.
Information the client needs to connect to an accelerator GDB server.
std::string triple
Target triple for the accelerator target.
bool synchronous
If true, connect synchronously: the client blocks until the accelerator process is connected and stop...
std::optional< std::string > exe_path
Path to the executable to use when creating the accelerator target.
std::string connect_url
Connection URL the client should connect to (as in "process connect<url>").
std::string platform_name
Name of the platform to select when creating the accelerator target.
Arguments for the jAcceleratorPluginGetDynamicLoaderLibraryInfo packet.
bool full
If false, return only what changed since the last query.
bool load
False means unload.
std::optional< uint64_t > native_memory_size
std::string pathname
Path to the object file, or a unique name identifying the module in the target when it has no file on...
std::optional< std::string > uuid_str
UUID of the object file, when the plugin knows it.
std::optional< uint64_t > native_memory_address
Where the image can be read in the native process, meaning the host process driving the accelerator,...
std::vector< AcceleratorSectionInfo > loaded_sections
Used when sections load at independent addresses.
std::optional< uint64_t > file_size
std::optional< uint64_t > file_offset
Slice of pathname holding the object file, when embedded in a container.
std::optional< uint64_t > load_address
Slides the whole object file.
Response from the jAcceleratorPluginGetDynamicLoaderLibraryInfo packet.
std::vector< AcceleratorDynamicLoaderLibraryInfo > library_infos
std::vector< std::string > names
A list of section names.
uint64_t load_address
Address the section named by names is loaded at.
std::string name
Symbol name as requested in AcceleratorBreakpointInfo::symbol_names.
std::optional< uint64_t > value
Load address of the symbol in the native process, or nullopt if not found.