tree: 7065f627deff8e83b9ffb0fd7e1591e5209f983c [path history] [tgz]
  1. BUILD.gn
  2. README.md
  3. agent_configuration.cc
  4. agent_configuration.h
  5. align.cc
  6. align.h
  7. align_unittest.cc
  8. arch.cc
  9. arch.h
  10. arch_arm64.cc
  11. arch_arm64_unittest.cc
  12. arch_types.h
  13. arch_x64.cc
  14. arch_x64_unittest.cc
  15. binary_launcher.h
  16. breakpoint.cc
  17. breakpoint.h
  18. breakpoint_unittest.cc
  19. component_launcher.cc
  20. component_launcher.h
  21. debug_agent.cc
  22. debug_agent.h
  23. debug_agent_unittest.cc
  24. debug_registers.h
  25. debug_registers_arm64.cc
  26. debug_registers_arm64_unittest.cc
  27. debug_registers_x64.cc
  28. debug_registers_x64_unittest.cc
  29. debugged_job.cc
  30. debugged_job.h
  31. debugged_job_unittest.cc
  32. debugged_process.cc
  33. debugged_process.h
  34. debugged_process_unittest.cc
  35. debugged_thread.cc
  36. debugged_thread.h
  37. debugged_thread_breakpoint_unittest.cc
  38. debugged_thread_unittest.cc
  39. elf_utils.cc
  40. elf_utils.h
  41. exception_handle.h
  42. fidl_server.cc
  43. fidl_server.h
  44. general_registers.cc
  45. general_registers.h
  46. hardware_breakpoint.cc
  47. hardware_breakpoint.h
  48. hardware_breakpoint_unittest.cc
  49. integration_tests/
  50. job_handle.cc
  51. job_handle.h
  52. limbo_provider.h
  53. local_stream_backend.cc
  54. local_stream_backend.h
  55. main.cc
  56. meta/
  57. mock_debug_agent_harness.cc
  58. mock_debug_agent_harness.h
  59. mock_exception_handle.h
  60. mock_job_handle.cc
  61. mock_job_handle.h
  62. mock_job_tree.cc
  63. mock_job_tree.h
  64. mock_limbo_provider.cc
  65. mock_limbo_provider.h
  66. mock_process.cc
  67. mock_process.h
  68. mock_process_breakpoint.h
  69. mock_process_handle.cc
  70. mock_process_handle.h
  71. mock_stream_backend.h
  72. mock_suspend_handle.h
  73. mock_system_interface.cc
  74. mock_system_interface.h
  75. mock_thread.cc
  76. mock_thread.h
  77. mock_thread_handle.cc
  78. mock_thread_handle.h
  79. module_list.cc
  80. module_list.h
  81. process_breakpoint.cc
  82. process_breakpoint.h
  83. process_handle.h
  84. process_handle_observer.h
  85. remote_api.h
  86. remote_api_adapter.cc
  87. remote_api_adapter.h
  88. socket_connection.cc
  89. socket_connection.h
  90. software_breakpoint.cc
  91. software_breakpoint.h
  92. software_breakpoint_unittest.cc
  93. suspend_handle.h
  94. system_interface.cc
  95. system_interface.h
  96. test_data/
  97. test_utils.h
  98. thread_handle.h
  99. unwind.cc
  100. unwind.h
  101. unwind_unittest.cc
  102. watchpoint.cc
  103. watchpoint.h
  104. watchpoint_info.h
  105. watchpoint_unittest.cc
  106. zircon_binary_launcher.cc
  107. zircon_binary_launcher.h
  108. zircon_exception_handle.cc
  109. zircon_exception_handle.h
  110. zircon_job_handle.cc
  111. zircon_job_handle.h
  112. zircon_limbo_provider.cc
  113. zircon_limbo_provider.h
  114. zircon_limbo_provider_unittest.cc
  115. zircon_process_handle.cc
  116. zircon_process_handle.h
  117. zircon_suspend_handle.cc
  118. zircon_suspend_handle.h
  119. zircon_system_interface.cc
  120. zircon_system_interface.h
  121. zircon_system_interface_unittest.cc
  122. zircon_thread_handle.cc
  123. zircon_thread_handle.h
  124. zircon_utils.cc
  125. zircon_utils.h
  126. 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.cmx 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!