class DebugAgent

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

Main state and control for the debug agent.

Public Methods

SystemInterface & system_interface ()

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

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

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

bool is_connected ()

Reflects the state of a debug_ipc connection.

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

void DebugAgent (std::unique_ptr<SystemInterface> system_interface)

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 78 of file ../../src/developer/debug/debug_agent/debug_agent.cc

fxl::WeakPtr<DebugAgent> GetWeakPtr ()

Defined at line 99 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 99 of file ../../src/developer/debug/debug_agent/debug_agent.h

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

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

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

uint32_t GetVersion ()

RemoteAPI implementation.

Defined at line 114 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 122 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void AddObserver (DebugAgentObserver * observer)

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

void Disconnect ()

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

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

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

void RemoveDebuggedProcess (zx_koid_t process_koid)

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

Breakpoint * GetBreakpoint (uint32_t breakpoint_id)

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

void RemoveBreakpoint (uint32_t breakpoint_id)

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

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

Defined at line 1040 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 1193 of file ../../src/developer/debug/debug_agent/debug_agent.cc

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

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

void OnTestComponentExited (const std::string & url)

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

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

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

DebuggedJob * GetDebuggedJob (zx_koid_t koid)

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

DebuggedProcess * GetDebuggedProcess (zx_koid_t koid)

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

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

Defined at line 650 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 801 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 657 of file ../../src/developer/debug/debug_agent/debug_agent.cc

void ClearState ()

Clear all state and release all attached processes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Defined at line 619 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 811 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 1347 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 1337 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 1326 of file ../../src/developer/debug/debug_agent/debug_agent.cc

Enumerations

enum ProcessChangedHow
Name Value
kStarting 0
kNameChanged 1

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

Friends

class DebugAgentTests_Kill_Test