Namespaces
Enumerations
enum AutomationOperandKind
| Name | Value |
|---|---|
| kZero | 0 |
| kRegister | 1 |
| kConstant | 2 |
| kStackSlot | 3 |
| kRegisterTimesConstant | 4 |
| kIndirectUInt32 | 5 |
| kIndirectUInt64 | 6 |
| kIndirectUInt32Loop | 7 |
| kIndirectUInt64Loop | 8 |
| kStoredValue | 9 |
Defined at line 18 of file ../../src/developer/debug/ipc/automation_instruction.h
enum ExceptionType
| Name | Value |
|---|---|
| kNone | 0 |
| kGeneral | 1 |
| kPageFault | 2 |
| kUndefinedInstruction | 3 |
| kUnalignedAccess | 4 |
| kPolicyError | 5 |
| kThreadStarting | 6 |
| kThreadExiting | 7 |
| kProcessStarting | 8 |
| kHardwareBreakpoint | 9 |
| kWatchpoint | 10 |
| kSingleStep | 11 |
| kSoftwareBreakpoint | 12 |
| kSynthetic | 13 |
| kUnknown | 14 |
| kLast | 15 |
Defined at line 27 of file ../../src/developer/debug/ipc/records.h
enum ExceptionStrategy
| Name | Value |
|---|---|
| kNone | 0 |
| kFirstChance | 1 |
| kSecondChance | 2 |
| kLast | 3 |
Exception handling strategy.
Defined at line 75 of file ../../src/developer/debug/ipc/records.h
enum AutomationConditionKind
| Name | Value |
|---|---|
| kFalse | 0 |
| kEquals | 1 |
| kNotEquals | 2 |
| kMaskAndEquals | 3 |
| kMaskAndNotEquals | 4 |
Defined at line 154 of file ../../src/developer/debug/ipc/automation_instruction.h
enum TaskType
| Name | Value |
|---|---|
| kUnknown | 0 |
| kProcess | 1 |
| kJob | 2 |
Defined at line 161 of file ../../src/developer/debug/ipc/records.h
enum AutomationInstructionKind
| Name | Value |
|---|---|
| kNop | 0 |
| kLoadMemory | 1 |
| kLoopLoadMemory | 2 |
| kComputeAndStore | 3 |
| kClearStoredValues | 4 |
Defined at line 224 of file ../../src/developer/debug/ipc/automation_instruction.h
enum Stop
| Name | Value |
|---|---|
| kNone | 0 |
| kThread | 1 |
| kProcess | 2 |
| kAll | 3 |
What threads to stop when the breakpoint is hit. These are ordered such that the integer values
increase for larger scopes.
Defined at line 433 of file ../../src/developer/debug/ipc/records.h
enum BreakpointType
| Name | Value |
|---|---|
| kSoftware | 0 |
| kHardware | 1 |
| kReadWrite | 2 |
| kWrite | 3 |
| kLast | 4 |
NOTE: read-only could be added in the future as arm64 supports them. They're not added today as
x64 does not support them and presenting a common platform is cleaner for now.
Defined at line 442 of file ../../src/developer/debug/ipc/records.h
Records
-
class AddOrChangeBreakpointReply -
class AddOrChangeBreakpointRequest -
class AddressRegion -
class AddressSpaceReply -
class AddressSpaceRequest -
class AttachConfig -
class AttachReply -
class AttachRequest -
class AutomationCondition -
class AutomationInstruction -
class AutomationInstruction_ConditionToString_Test -
class AutomationInstruction_InstructionToString_Test -
class AutomationInstruction_OperandToString_Test -
class AutomationOperand -
class BreakpointSettings -
class BreakpointStats -
class ComponentInfo -
class DecodeException_Arm64_Test -
class DecodeException_X64_Test -
class DetachReply -
class DetachRequest -
class ExceptionRecord -
class Filter -
class FilterConfig -
class FilterMatch -
class FilterUtils_ConflictingFiltersDifferentTargets_Test -
class FilterUtils_FilterMatches_Test -
class FilterUtils_GetAttachConfigsForFilterMatches_Test -
class FilterUtils_WeakOverridesNeverAttach_Test -
class HelloReply -
class HelloRequest -
class InfoHandle -
class InfoHandleVmo -
class KillReply -
class KillRequest -
class LoadInfoHandleTableReply -
class LoadInfoHandleTableRequest -
class MatchedTask -
class MemoryBlock -
class MessageReader -
class MessageWriter -
class Message_ReadWriteBytes_Test -
class Message_ReadWriteNumbers_Test -
class Message_ReadWriteOptional_Test -
class Module -
class ModulesReply -
class ModulesRequest -
class MsgHeader -
class NotifyComponentDiscovered -
class NotifyComponentExiting -
class NotifyComponentStarting -
class NotifyException -
class NotifyFilterCreated -
class NotifyIO -
class NotifyLog -
class NotifyModules -
class NotifyProcessExiting -
class NotifyProcessStarting -
class NotifyTestExited -
class NotifyThreadExiting -
class NotifyThreadStarting -
class PauseReply -
class PauseRequest -
class ProcessBreakpointSettings -
class ProcessRecord -
class ProcessThreadId -
class ProcessTreeRecord -
class ProcessTreeReply -
class ProcessTreeRequest -
class Protocol_AddOrChangeBreakpointReply_Test -
class Protocol_AddOrChangeBreakpointRequest_Test -
class Protocol_AspaceReply_Test -
class Protocol_AspaceRequest_Test -
class Protocol_AttachReply_Test -
class Protocol_AttachRequest_Test -
class Protocol_DetachReply_Test -
class Protocol_DetachRequest_Test -
class Protocol_HelloReply_Test -
class Protocol_HelloRequest_Test -
class Protocol_KillReply_Test -
class Protocol_KillRequest_Test -
class Protocol_LoadInfoHandleTableReply_Test -
class Protocol_LoadInfoHandleTableRequest_Test -
class Protocol_ModulesReply_Test -
class Protocol_ModulesRequest_Test -
class Protocol_NotifyComponentDiscoveredWithVersion_Test -
class Protocol_NotifyComponentDiscovered_Test -
class Protocol_NotifyComponentExitingWithVersion_Test -
class Protocol_NotifyComponentStarting_Test -
class Protocol_NotifyException_Test -
class Protocol_NotifyFilterCreatedWithVersion_Test -
class Protocol_NotifyFilterCreated_Test -
class Protocol_NotifyIO_Test -
class Protocol_NotifyLog_Test -
class Protocol_NotifyModules_Test -
class Protocol_NotifyProcessExiting_Test -
class Protocol_NotifyProcessStartingWithVersion_Test -
class Protocol_NotifyProcessStarting_Test -
class Protocol_NotifyThreadStarting_Test -
class Protocol_PauseReply_Test -
class Protocol_PauseRequest_Test -
class Protocol_ProcessTreeReply_Test -
class Protocol_ProcessTreeRequest_Test -
class Protocol_ReadMemoryReply_Test -
class Protocol_ReadMemoryRequest_Test -
class Protocol_ReadRegistersReply_Test -
class Protocol_ReadRegistersRequest_Test -
class Protocol_RemoveBreakpointReply_Test -
class Protocol_RemoveBreakpointRequest_Test -
class Protocol_ResumeRequest_Test -
class Protocol_RunBinaryReply_Test -
class Protocol_RunBinaryRequest_Test -
class Protocol_StatusReply_Test -
class Protocol_StatusRequest_Test -
class Protocol_SysInfoReply_Test -
class Protocol_SysInfoRequest_Test -
class Protocol_ThreadStatusReply_Test -
class Protocol_ThreadStatusRequest_Test -
class Protocol_ThreadsReply_Test -
class Protocol_ThreadsRequest_Test -
class Protocol_UpdateFilterReplyWithVersion_Test -
class Protocol_UpdateFilterReply_Test -
class Protocol_UpdateFilterRequest_Test -
class Protocol_UpdateGlobalSettingsReply_Test -
class Protocol_UpdateGlobalSettingsRequest_Test -
class Protocol_WriteMemoryReply_Test -
class Protocol_WriteMemoryRequest_Test -
class Protocol_WriteRegistersReply_Test -
class Protocol_WriteRegistersRequest_Test -
class ReadMemoryReply -
class ReadMemoryRequest -
class ReadRegistersReply -
class ReadRegistersRequest -
class RemoveBreakpointReply -
class RemoveBreakpointRequest -
class ResumeReply -
class ResumeRequest -
class RunBinaryReply -
class RunBinaryRequest -
class RunComponentReply -
class RunComponentRequest -
class RunTestReply -
class RunTestRequest -
class SaveMinidumpReply -
class SaveMinidumpRequest -
class StackFrame -
class StatusReply -
class StatusRequest -
class SysInfoReply -
class SysInfoRequest -
class ThreadRecord -
class ThreadStatusReply -
class ThreadStatusRequest -
class ThreadsReply -
class ThreadsRequest -
class UpdateFilterReply -
class UpdateFilterRequest -
class UpdateGlobalSettingsReply -
class UpdateGlobalSettingsRequest -
class WriteMemoryReply -
class WriteMemoryRequest -
class WriteRegistersReply -
class WriteRegistersRequest -
class X64DebugRegs
Functions
-
bool operator== (const Module & a, const Module & b)Comparison function for checking for changes in the list.
Defined at line 14 of file ../../src/developer/debug/debug_agent/module_list.cc
-
bool FilterMatches (const Filter & filter, const std::string & process_name, const std::vector<ComponentInfo> & components)Matches the filter with the given process_name or any of the components given in |components|,
ignoring the job_koid.
Defined at line 42 of file ../../src/developer/debug/ipc/filter_utils.cc
-
unwinder::Registers ConvertRegisters (debug::Arch arch, const std::vector<debug::RegisterValue> & regs)Defined at line 39 of file ../../src/developer/debug/ipc/unwinder_support.cc
-
const char * ExceptionTypeToString (ExceptionType )Defined at line 32 of file ../../src/developer/debug/ipc/records.cc
-
bool IsDebug (ExceptionType )Defined at line 14 of file ../../src/developer/debug/ipc/records.cc
-
template <typename MsgType>bool Deserialize (std::vector<char> data, MsgType * msg, uint32_t * transaction_id, uint32_t version)MsgType can be either Request or Reply types.
Defined at line 47 of file ../../src/developer/debug/ipc/message_reader.h
-
template <typename NotificationType>bool Deserialize (std::vector<char> data, NotificationType * notify, uint32_t version)Defined at line 58 of file ../../src/developer/debug/ipc/message_reader.h
-
std::vector<debug_ipc::StackFrame> ConvertFrames (const std::vector<unwinder::Frame> & frames)Defined at line 72 of file ../../src/developer/debug/ipc/unwinder_support.cc
-
const Filter * GetFilterForId (const std::vector<const Filter *> & filters, const Filter::Identifier & id)Returns the filter from the given |filters| that has |id|.
Defined at line 70 of file ../../src/developer/debug/ipc/filter_utils.cc
-
uint32_t GenerateFilterIdValue ()Shared function for clients to generate unique values for their filters.
Defined at line 77 of file ../../src/developer/debug/ipc/filter_utils.cc
-
ExceptionType DecodeX64Exception (uint32_t code, fit::function<std::optional<X64DebugRegs> ()> fetch_debug_regs)Defined at line 62 of file ../../src/developer/debug/ipc/decode_exception.cc
-
std::map<uint64_t, debug_ipc::AttachConfig> GetAttachConfigsForFilterMatches (const std::vector<debug_ipc::FilterMatch> & matches, const std::vector<const debug_ipc::Filter *> & installed_filters)Converts a vector of FilterMatch objects and a vector of installed filters into a map of pids to
AttachConfigs derived from any matching filters, or the defaults if there was no matching filter.
Correctly takes into account filters that may match the same job or process and overlays settings
appropriately. The returned map will not have duplicates.
Defined at line 86 of file ../../src/developer/debug/ipc/filter_utils.cc
-
ExceptionType DecodeArm64Exception (uint32_t code, fit::function<std::optional<uint32_t> ()> fetch_esr)Defined at line 138 of file ../../src/developer/debug/ipc/decode_exception.cc
-
ExceptionType DecodeRiscv64Exception (uint32_t code)Defined at line 163 of file ../../src/developer/debug/ipc/decode_exception.cc
-
const char * ExceptionStrategyToString (ExceptionStrategy )Defined at line 71 of file ../../src/developer/debug/ipc/records.cc
-
std::optional<ExceptionStrategy> ToExceptionStrategy (uint32_t raw_value)Defined at line 86 of file ../../src/developer/debug/ipc/records.cc
-
template <typename MsgType>std::vector<char> Serialize (const MsgType & request, uint32_t transaction_id, uint32_t version)Defined at line 89 of file ../../src/developer/debug/ipc/message_writer.h
-
std::optional<uint32_t> ToRawValue (ExceptionStrategy strategy)Defined at line 97 of file ../../src/developer/debug/ipc/records.cc
-
template <typename NotificationType>std::vector<char> Serialize (const NotificationType & notify, uint32_t version)Defined at line 103 of file ../../src/developer/debug/ipc/message_writer.h
-
const char * BreakpointTypeToString (BreakpointType )Defined at line 161 of file ../../src/developer/debug/ipc/records.cc
-
bool IsWatchpointType (BreakpointType )Read, ReadWrite and Write are considered watchpoint types.
Defined at line 179 of file ../../src/developer/debug/ipc/records.cc
-
const char * AttachPriorityToString (AttachConfig::Priority priority)Defined at line 197 of file ../../src/developer/debug/ipc/records.cc
Concepts
template <typename T> IsDebugIpcMessageType requires (T t, Serializer &s, uint32_t ver) { { t.Serialize(s, ver) }; }
The only requirement for a type to be compatible with debug_ipc is for it to contain a
Serialize method that serializes its own members using the provided serializer object. Use this
as a requirement when writing template functions for all debug_ipc message types. This concept
applies for both Request and Notification types. If you're only concerned about Notification
types, use the notification specific concept below this one.
Defined at line 82 of file ../../src/developer/debug/ipc/protocol.h
template <typename T> IsDebugIpcNotificationType requires (T t, Serializer &s, uint32_t ver) { { t.timestamp }; { t.Serialize(s, ver) }; }
The only difference for notification types is that they also have a required timestamp parameter,
which is optional for request types.
Defined at line 89 of file ../../src/developer/debug/ipc/protocol.h