test_long_wrapping.xml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <article xmlns="http://docbook.org/ns/docbook">
  3. <section>
  4. <sectioninfo>
  5. <title>DBGP - A common debugger protocol for languages and debugger UI communication</title>
  6. <author>Shane Caraveo, ActiveState &lt;shanec@ActiveState.com&gt; Derick Rethans &lt;derick@derickrethans.nl&gt;</author>
  7. </sectioninfo>
  8. <section>
  9. <title>DBGP - A common debugger protocol for languages and debugger UI communication</title>
  10. <para>Contents</para>
  11. <section>
  12. <title>
  13. <link linked="id11">1. Description</link>
  14. </title>
  15. <para>This document describes a simple protocol for use with language tools
  16. and engines for the purpose of debugging applications. It does not
  17. describe user interfaces or interactions with the debugger. The
  18. protocol provides a means of communication between a debugger
  19. engine (scripting engine, vm, etc.) and a debugger IDE (IDE, etc.).
  20. Any references to the debugger IDE UI are recommendations only, and are
  21. provided for additional explanation or as reasoning for specific
  22. design decisions.</para>
  23. </section>
  24. <section>
  25. <title>
  26. <link linked="id12">1.1 Issues</link>
  27. </title>
  28. <para>1. The handling of proxy errors needs to be clarified. Without both
  29. IDE and debugger engine supporting commands to be received at
  30. arbitrary times, the proxy may have problems sending error or status
  31. information to either one. See section 5.3.2. We should think a bit
  32. more about what a proxy might need to do.</para>
  33. </section>
  34. <section>
  35. <title>
  36. <link linked="id13">2. Requirements</link>
  37. </title>
  38. </section>
  39. <section>
  40. <title>
  41. <link linked="id14">3. Terminology</link>
  42. </title>
  43. </section>
  44. <section>
  45. <title>
  46. <link linked="id15">4. Security</link>
  47. </title>
  48. <para>It is expected that implementations will provide security, such as ip
  49. filtering, ssh tunneling, etc. This protocol itself does not provide
  50. a means of securing the debugging session.</para>
  51. </section>
  52. <section>
  53. <title>
  54. <link linked="id16">5. Initiating a debugging session</link>
  55. </title>
  56. <para>The debugger engine initiates a debugging session. The debugger engine
  57. will make a connection to a listening IDE, then wait for the IDE to
  58. initiate commands. The debugger engine does not step into the first line of
  59. execution until the IDE issues one of the continuation commands.
  60. The first thing that should happen in a debug session is that the IDE
  61. negotiates features using the feature_get and feature_set commands, and sets
  62. any additional data, such as breakpoints. Debugger engine implementations
  63. should store and data it receives if it is unable to process them prior to
  64. compiling and/or executing code. Commands such as stack_get should not be
  65. expected to work during this phase, otherwise known as the 'starting' state (see
  66. section 7.1 for status levels).</para>
  67. <para>Likewise, at the end of a debug session, there is a 'stopping' state. This state
  68. is entered after all execution is complete. For most debugger engine implementations,
  69. only a 'stop' command can be accepted at this point, however some implementations
  70. may provide additional commands for retrieving various data from the engine for
  71. post debug session processing.</para>
  72. </section>
  73. </section>
  74. </section>
  75. </article>