class DebugAgent

Defined at line 42 of file ../../src/developer/debug/debug_agent/debug_agent.h

Public Methods

SystemInterface & system_interface ()

Defined at line 54 of file ../../src/developer/debug/debug_agent/debug_agent.h

const std::map<uint32_t, Breakpoint> & breakpoints ()

Defined at line 55 of file ../../src/developer/debug/debug_agent/debug_agent.h

bool is_connected ()

Reflects the state of a debug_ipc connection.

Defined at line 58 of file ../../src/developer/debug/debug_agent/debug_agent.h

void DebugAgent (std::unique_ptr<SystemInterface> system_interface, DebugAgentOptions options)

A MessageLoopZircon should already be set up on the current thread.

The stream must outlive this class. It will be used to send data to the

client. It will not be read (that's the job of the provider of the

RemoteAPI).

Defined at line 79 of file ../../src/developer/debug/debug_agent/debug_agent.cc

fxl::WeakPtr<DebugAgent> GetWeakPtr ()

Defined at line 101 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void TakeAndConnectRemoteAPIStream (std::unique_ptr<debug::BufferedStream> stream)

Wire |stream| up to |adapter_| and then pass it to |Connect|.

Defined at line 103 of file ../../src/developer/debug/debug_agent/debug_agent.cc

template <typename NotifyType>
void SendNotification (const NotifyType & notify)

Send notification to the client.

Defined at line 108 of file ../../src/developer/debug/debug_agent/debug_agent.h

uint32_t GetVersion ()

RemoteAPI implementation.

Defined at line 123 of file ../../src/developer/debug/debug_agent/debug_agent.h

void Connect (std::unique_ptr<debug::BufferedStream> stream)

Take ownership of |stream| and start listening.

Defined at line 124 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void Disconnect ()

Defined at line 132 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void AddObserver (DebugAgentObserver * observer)

Defined at line 134 of file ../../src/developer/debug/debug_agent/debug_agent.h

const std::map<zx_koid_t, std::unique_ptr<DebuggedProcess>> & GetAllProcesses ()

Defined at line 141 of file ../../src/developer/debug/debug_agent/debug_agent.h

void RemoveDebuggedProcess (zx_koid_t process_koid)

Defined at line 154 of file ../../src/developer/debug/debug_agent/debug_agent.cc

debug::Status TrackProcess (std::unique_ptr<ProcessHandle> process, DebuggedProcess ** added)

Configures the debug agent to track/debug |process| with minimal attach priority.

The newly created DebuggedProcess is returned via |added| if the operation succeeds.

Defined at line 814 of file ../../src/developer/debug/debug_agent/debug_agent.cc

Breakpoint * GetBreakpoint (uint32_t breakpoint_id)

Defined at line 162 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void RemoveBreakpoint (uint32_t breakpoint_id)

Defined at line 168 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnProcessChanged (ProcessChangedHow how, std::unique_ptr<ProcessHandle> process)

Defined at line 1062 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnComponentStarted (const std::string & moniker, const std::string & url, zx_koid_t job_koid)

Notified by ComponentManager.

Defined at line 1215 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnComponentExited (const std::string & moniker, const std::string & url)

Defined at line 1291 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnTestComponentExited (const std::string & url)

Defined at line 1302 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void InjectProcessForTest (std::unique_ptr<DebuggedProcess> process)

Defined at line 1310 of file ../../src/developer/debug/debug_agent/debug_agent.cc

DebuggedJob * GetDebuggedJob (zx_koid_t koid)

Defined at line 644 of file ../../src/developer/debug/debug_agent/debug_agent.cc

DebuggedProcess * GetDebuggedProcess (zx_koid_t koid)

Defined at line 653 of file ../../src/developer/debug/debug_agent/debug_agent.cc

DebuggedThread * GetDebuggedThread (const debug_ipc::ProcessThreadId & id)

Defined at line 660 of file ../../src/developer/debug/debug_agent/debug_agent.cc

debug_ipc::ExceptionStrategy GetExceptionStrategy (debug_ipc::ExceptionType type)

Returns the exception handling strategy for a given type.

Defined at line 821 of file ../../src/developer/debug/debug_agent/debug_agent.cc

std::vector<debug_ipc::ProcessThreadId> ClientSuspendAll (zx_koid_t except_process, zx_koid_t except_thread)

Suspends all threads of all attached processes. If given the process/thread will be excepted

from the suspend (they must both be either specified or ZX_KOID_INVALID).

The affected process/thread koid pairs are returned. Any threads already in a client suspend

will not be affected.

Defined at line 667 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void ClearState ()

Clear all state and release all attached processes.

Defined at line 140 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnHello (const debug_ipc::HelloRequest & request, debug_ipc::HelloReply * reply)

Defined at line 173 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnStatus (const debug_ipc::StatusRequest & request, debug_ipc::StatusReply * reply)

Defined at line 201 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnRunBinary (const debug_ipc::RunBinaryRequest & request, debug_ipc::RunBinaryReply * reply)

Defined at line 255 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnRunComponent (const debug_ipc::RunComponentRequest & request, debug_ipc::RunComponentReply * reply)

Defined at line 266 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnRunTest (const debug_ipc::RunTestRequest & request, debug_ipc::RunTestReply * reply)

Defined at line 271 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnKill (const debug_ipc::KillRequest & request, debug_ipc::KillReply * reply)

Defined at line 277 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnDetach (const debug_ipc::DetachRequest & request, debug_ipc::DetachReply * reply)

Defined at line 306 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnPause (const debug_ipc::PauseRequest & request, debug_ipc::PauseReply * reply)

Defined at line 334 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnResume (const debug_ipc::ResumeRequest & request, debug_ipc::ResumeReply * reply)

Defined at line 371 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnModules (const debug_ipc::ModulesRequest & request, debug_ipc::ModulesReply * reply)

Defined at line 390 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnProcessTree (const debug_ipc::ProcessTreeRequest & request, debug_ipc::ProcessTreeReply * reply)

Defined at line 397 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnThreads (const debug_ipc::ThreadsRequest & request, debug_ipc::ThreadsReply * reply)

Defined at line 402 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnReadMemory (const debug_ipc::ReadMemoryRequest & request, debug_ipc::ReadMemoryReply * reply)

Defined at line 412 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnReadRegisters (const debug_ipc::ReadRegistersRequest & request, debug_ipc::ReadRegistersReply * reply)

Defined at line 419 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnWriteRegisters (const debug_ipc::WriteRegistersRequest & request, debug_ipc::WriteRegistersReply * reply)

Defined at line 429 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnAddOrChangeBreakpoint (const debug_ipc::AddOrChangeBreakpointRequest & request, debug_ipc::AddOrChangeBreakpointReply * reply)

Defined at line 442 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnRemoveBreakpoint (const debug_ipc::RemoveBreakpointRequest & request, debug_ipc::RemoveBreakpointReply * reply)

Defined at line 457 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnSysInfo (const debug_ipc::SysInfoRequest & request, debug_ipc::SysInfoReply * reply)

Defined at line 462 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnThreadStatus (const debug_ipc::ThreadStatusRequest & request, debug_ipc::ThreadStatusReply * reply)

Defined at line 472 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnAddressSpace (const debug_ipc::AddressSpaceRequest & request, debug_ipc::AddressSpaceReply * reply)

Defined at line 541 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnUpdateFilter (const debug_ipc::UpdateFilterRequest & request, debug_ipc::UpdateFilterReply * reply)

Defined at line 548 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnWriteMemory (const debug_ipc::WriteMemoryRequest & request, debug_ipc::WriteMemoryReply * reply)

Defined at line 600 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnLoadInfoHandleTable (const debug_ipc::LoadInfoHandleTableRequest & request, debug_ipc::LoadInfoHandleTableReply * reply)

Defined at line 611 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnUpdateGlobalSettings (const debug_ipc::UpdateGlobalSettingsRequest & request, debug_ipc::UpdateGlobalSettingsReply * reply)

Defined at line 622 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnSaveMinidump (const debug_ipc::SaveMinidumpRequest & request, debug_ipc::SaveMinidumpReply * reply)

Defined at line 629 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void OnAttach (const debug_ipc::AttachRequest & request, debug_ipc::AttachReply * reply)

Attaching ---------------------------------------------------------------------------------------

Defined at line 831 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void WriteLog (debug::LogSeverity severity, const debug::FileLineFunction & location, std::string log)

Implements |LogBackend|.

Defined at line 1369 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void RemoveObserver (DebugAgentObserver * observer)

Note this is a potential exit point. If there are no more observers after |observer| has been

removed, and no debug_ipc client is connected, the message loop will be shut down and this

agent will exit.

Defined at line 1359 of file ../../src/developer/debug/debug_agent/debug_agent.cc

std::vector<const debug_ipc::Filter *> GetIpcFilters ()

Warning this returns pointers into our internal buffer of filters. If the internal buffer is

mutated, these pointers will be invalidated.

Defined at line 1348 of file ../../src/developer/debug/debug_agent/debug_agent.cc

Enumerations

enum class ProcessChangedHow
Name Value
kStarting 0
kNameChanged 1

Defined at line 75 of file ../../src/developer/debug/debug_agent/debug_agent.h

Friends

class DebugAgentTests_MonitorRootJobOption_Test
class DebugAgentTests_Kill_Test