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 79 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
fxl::WeakPtr<DebugAgent> GetWeakPtr ()
Defined at line 100 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 102 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 123 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 131 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 153 of file ../../src/developer/debug/debug_agent/debug_agent.cc
Breakpoint * GetBreakpoint (uint32_t breakpoint_id)
Defined at line 161 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void RemoveBreakpoint (uint32_t breakpoint_id)
Defined at line 167 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnProcessChanged (ProcessChangedHow how, std::unique_ptr<ProcessHandle> process)
Defined at line 1047 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnComponentStarted (const std::string &moniker,const std::string &url,zx_koid_tjob_koid)
Notified by ComponentManager.
Defined at line 1200 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnComponentExited (const std::string & moniker, const std::string & url)
Defined at line 1276 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnTestComponentExited (const std::string & url)
Defined at line 1287 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void InjectProcessForTest (std::unique_ptr<DebuggedProcess> process)
Defined at line 1295 of file ../../src/developer/debug/debug_agent/debug_agent.cc
DebuggedJob * GetDebuggedJob (zx_koid_t koid)
Defined at line 641 of file ../../src/developer/debug/debug_agent/debug_agent.cc
DebuggedProcess * GetDebuggedProcess (zx_koid_t koid)
Defined at line 650 of file ../../src/developer/debug/debug_agent/debug_agent.cc
DebuggedThread * GetDebuggedThread (const debug_ipc::ProcessThreadId & id)
Defined at line 657 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 808 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 664 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void ClearState ()
Clear all state and release all attached processes.
Defined at line 139 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnHello (const debug_ipc::HelloRequest & request, debug_ipc::HelloReply * reply)
Defined at line 172 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnStatus (const debug_ipc::StatusRequest & request, debug_ipc::StatusReply * reply)
Defined at line 200 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnRunBinary (const debug_ipc::RunBinaryRequest & request, debug_ipc::RunBinaryReply * reply)
Defined at line 254 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnRunComponent (const debug_ipc::RunComponentRequest & request, debug_ipc::RunComponentReply * reply)
Defined at line 265 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnRunTest (const debug_ipc::RunTestRequest & request, debug_ipc::RunTestReply * reply)
Defined at line 270 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnKill (const debug_ipc::KillRequest & request, debug_ipc::KillReply * reply)
Defined at line 276 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnDetach (const debug_ipc::DetachRequest & request, debug_ipc::DetachReply * reply)
Defined at line 305 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnPause (const debug_ipc::PauseRequest & request, debug_ipc::PauseReply * reply)
Defined at line 333 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnResume (const debug_ipc::ResumeRequest & request, debug_ipc::ResumeReply * reply)
Defined at line 370 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnModules (const debug_ipc::ModulesRequest & request, debug_ipc::ModulesReply * reply)
Defined at line 389 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnProcessTree (const debug_ipc::ProcessTreeRequest & request, debug_ipc::ProcessTreeReply * reply)
Defined at line 396 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnThreads (const debug_ipc::ThreadsRequest & request, debug_ipc::ThreadsReply * reply)
Defined at line 401 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnReadMemory (const debug_ipc::ReadMemoryRequest & request, debug_ipc::ReadMemoryReply * reply)
Defined at line 411 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnReadRegisters (const debug_ipc::ReadRegistersRequest & request, debug_ipc::ReadRegistersReply * reply)
Defined at line 418 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnWriteRegisters (const debug_ipc::WriteRegistersRequest & request, debug_ipc::WriteRegistersReply * reply)
Defined at line 428 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnAddOrChangeBreakpoint (const debug_ipc::AddOrChangeBreakpointRequest & request, debug_ipc::AddOrChangeBreakpointReply * reply)
Defined at line 441 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnRemoveBreakpoint (const debug_ipc::RemoveBreakpointRequest & request, debug_ipc::RemoveBreakpointReply * reply)
Defined at line 456 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnSysInfo (const debug_ipc::SysInfoRequest & request, debug_ipc::SysInfoReply * reply)
Defined at line 461 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnThreadStatus (const debug_ipc::ThreadStatusRequest & request, debug_ipc::ThreadStatusReply * reply)
Defined at line 471 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnAddressSpace (const debug_ipc::AddressSpaceRequest & request, debug_ipc::AddressSpaceReply * reply)
Defined at line 540 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnUpdateFilter (const debug_ipc::UpdateFilterRequest & request, debug_ipc::UpdateFilterReply * reply)
Defined at line 547 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnWriteMemory (const debug_ipc::WriteMemoryRequest & request, debug_ipc::WriteMemoryReply * reply)
Defined at line 597 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnLoadInfoHandleTable (const debug_ipc::LoadInfoHandleTableRequest & request, debug_ipc::LoadInfoHandleTableReply * reply)
Defined at line 608 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnUpdateGlobalSettings (const debug_ipc::UpdateGlobalSettingsRequest & request, debug_ipc::UpdateGlobalSettingsReply * reply)
Defined at line 619 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void OnSaveMinidump (const debug_ipc::SaveMinidumpRequest & request, debug_ipc::SaveMinidumpReply * reply)
Defined at line 626 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 818 of file ../../src/developer/debug/debug_agent/debug_agent.cc
void WriteLog (debug::LogSeverityseverity,const debug::FileLineFunction &location,std::stringlog)
Implements |LogBackend|.
Defined at line 1354 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 1344 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 1333 of file ../../src/developer/debug/debug_agent/debug_agent.cc
Enumerations
enum class 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