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

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