tree: 940cf5e9f64876b1adea6c1148fe84c2d8146a38
  1. integration_tests/
  2. meta/
  3. posix/
  4. test_data/
  5. testing/
  6. align.cc
  7. align.h
  8. align_unittest.cc
  9. aligned_chunk.cc
  10. aligned_chunk.h
  11. aligned_chunk_unittest.cc
  12. arch.h
  13. arch_arm64.cc
  14. arch_arm64_unittest.cc
  15. arch_types.h
  16. arch_x64.cc
  17. arch_x64_unittest.cc
  18. automation_handler.cc
  19. automation_handler.h
  20. automation_instruction_executor.cc
  21. automation_instruction_executor.h
  22. automation_instruction_executor_unittest.cc
  23. backtrace_utils.cc
  24. backtrace_utils.h
  25. binary_launcher.h
  26. breakpoint.cc
  27. breakpoint.h
  28. breakpoint_unittest.cc
  29. BUILD.gn
  30. component_manager.cc
  31. component_manager.h
  32. debug_agent.cc
  33. debug_agent.h
  34. debug_agent_observer.h
  35. debug_agent_server.cc
  36. debug_agent_server.h
  37. debug_agent_server_unittest.cc
  38. debug_agent_unittest.cc
  39. debug_registers.h
  40. debug_registers_arm64.cc
  41. debug_registers_arm64_unittest.cc
  42. debug_registers_x64.cc
  43. debug_registers_x64_unittest.cc
  44. debugged_job.cc
  45. debugged_job.h
  46. debugged_job_unittest.cc
  47. debugged_process.cc
  48. debugged_process.h
  49. debugged_process_unittest.cc
  50. debugged_thread.cc
  51. debugged_thread.h
  52. debugged_thread_breakpoint_unittest.cc
  53. debugged_thread_unittest.cc
  54. elf_utils.cc
  55. elf_utils.h
  56. elf_utils_unittest.cc
  57. exception_handle.h
  58. filter.cc
  59. filter.h
  60. filter_unittest.cc
  61. general_registers.cc
  62. general_registers.h
  63. hardware_breakpoint.cc
  64. hardware_breakpoint.h
  65. hardware_breakpoint_unittest.cc
  66. job_exception_channel_type.h
  67. job_exception_observer.h
  68. job_handle.cc
  69. job_handle.h
  70. launcher.cc
  71. launcher.h
  72. limbo_provider.h
  73. linux_arch.h
  74. linux_arch_arm64.cc
  75. linux_arch_x64.cc
  76. linux_binary_launcher.cc
  77. linux_binary_launcher.h
  78. linux_component_manager.cc
  79. linux_component_manager.h
  80. linux_exception_handle.cc
  81. linux_exception_handle.h
  82. linux_job_handle.cc
  83. linux_job_handle.h
  84. linux_limbo_provider.h
  85. linux_process_handle.cc
  86. linux_process_handle.h
  87. linux_suspend_handle.h
  88. linux_system_interface.cc
  89. linux_system_interface.h
  90. linux_task.cc
  91. linux_task.h
  92. linux_task_observer.h
  93. linux_thread_handle.cc
  94. linux_thread_handle.h
  95. linux_utils.cc
  96. linux_utils.h
  97. linux_utils_unittest.cc
  98. local_stream_backend.cc
  99. local_stream_backend.h
  100. main.cc
  101. main_launcher.cc
  102. minidump_iterator.cc
  103. minidump_iterator.h
  104. minidump_iterator_unittest.cc
  105. mock_component_manager.cc
  106. mock_component_manager.h
  107. mock_debug_agent_harness.cc
  108. mock_debug_agent_harness.h
  109. mock_exception_handle.h
  110. mock_job_handle.cc
  111. mock_job_handle.h
  112. mock_limbo_provider.cc
  113. mock_limbo_provider.h
  114. mock_process.cc
  115. mock_process.h
  116. mock_process_breakpoint.h
  117. mock_process_handle.cc
  118. mock_process_handle.h
  119. mock_stream_backend.h
  120. mock_suspend_handle.h
  121. mock_system_interface.cc
  122. mock_system_interface.h
  123. mock_thread.cc
  124. mock_thread.h
  125. mock_thread_handle.cc
  126. mock_thread_handle.h
  127. module_list.cc
  128. module_list.h
  129. process_breakpoint.cc
  130. process_breakpoint.h
  131. process_handle.h
  132. process_handle_observer.h
  133. process_info_iterator.cc
  134. process_info_iterator.h
  135. process_info_iterator_unittest.cc
  136. README.md
  137. remote_api.h
  138. remote_api_adapter.cc
  139. remote_api_adapter.h
  140. software_breakpoint.cc
  141. software_breakpoint.h
  142. software_breakpoint_unittest.cc
  143. stdio_handles.h
  144. suspend_handle.h
  145. system_interface.cc
  146. system_interface.h
  147. system_interface_unittest.cc
  148. test_realm.cc
  149. test_realm.h
  150. test_utils.h
  151. thread_handle.h
  152. time.h
  153. time_zircon_unittest.cc
  154. unwind.cc
  155. unwind.h
  156. unwind_unittest.cc
  157. watchpoint.cc
  158. watchpoint.h
  159. watchpoint_info.h
  160. watchpoint_unittest.cc
  161. zircon_arch.cc
  162. zircon_arch.h
  163. zircon_arch_arm64.cc
  164. zircon_arch_x64.cc
  165. zircon_binary_launcher.cc
  166. zircon_binary_launcher.h
  167. zircon_component_manager.cc
  168. zircon_component_manager.h
  169. zircon_exception_handle.cc
  170. zircon_exception_handle.h
  171. zircon_job_handle.cc
  172. zircon_job_handle.h
  173. zircon_limbo_provider.cc
  174. zircon_limbo_provider.h
  175. zircon_limbo_provider_unittest.cc
  176. zircon_process_handle.cc
  177. zircon_process_handle.h
  178. zircon_suspend_handle.cc
  179. zircon_suspend_handle.h
  180. zircon_system_interface.cc
  181. zircon_system_interface.h
  182. zircon_system_interface_unittest.cc
  183. zircon_thread_handle.cc
  184. zircon_thread_handle.h
  185. zircon_utils.cc
  186. zircon_utils.h
  187. zxdb_test_app.cc
src/developer/debug/debug_agent/README.md

Debug agent

This is the code for the backend of the Fuchsia debugger. This backend runs on the target Fuchsia computer (Linux or Mac) and talks via IPC (code in ../ipc) to the zxdb frontend (code in ../zxdb) running on the developer's workstation.

User documentation

Please see the debugger setup and usage documentation.

Manual testing

When changing anything related to process launching:

  • run /boot/bin/ps
  • run -c fuchsia-pkg://fuchsia.com/debug_agent#meta/debug_agent.cm or some other component URL.
  • attach some_filter When a process by that name already exists.
  • A new process caught by filter (technically 2 handles this, but it's good to be explicit).
  • attach 56421 Attach by PID and name are different code paths in the agent!