home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 103 / af103sub.adf / Hugo.LZX / Hugo / hdhelp.hlp < prev    next >
Text File  |  1997-08-22  |  13KB  |  440 lines

  1. $binary file
  2.  
  3. # -------------------------------------------
  4. # Hugo Debugger Help File
  5. # Copyright (c) 1997 by Kent Tessman
  6. # The General Coffee Company Film Productions
  7. #
  8. # Version 2.3
  9. # -------------------------------------------
  10.  
  11. # ------------
  12. # General help
  13. # ------------
  14.  
  15. "help hugo debugger introduction intro menu menus menubar"
  16. The Hugo Debugger
  17.  
  18. The Hugo Debugger is a tool for debugging programs written in 
  19. the Hugo language.  It enables a Hugo developer to trace code 
  20. execution, set breakpoints, watch expressions, modify values, 
  21. and perform other debugging functions expected of a modern 
  22. programming/design environment.
  23.  
  24. The Hugo Debugger is not a source-level debugger per se; that 
  25. is, it doesn't trace code execution by stepping visually 
  26. through the original source file(s).  Instead, it expands the
  27. compact encoding of the compiled program line-by-line into its 
  28. source-level equivalent.
  29.  
  30. Help on various topics is available under the Help menu via
  31. the "Topic" selection.  Alternatively, press the "Context Help"
  32. key (see "Shortcut Keys" for further details) at any point to
  33. get help about the current activity.
  34.  
  35. (Enter "list" as the topic for a list of available help 
  36. topics.)
  37. $
  38.  
  39. "list available"
  40. Available Help Topics
  41.  
  42. Hugo Debugger
  43.  
  44. Restarting
  45. Printing
  46. Exiting the Debugger
  47.  
  48. Windows
  49. Code Window
  50. Watch Window
  51. Calls
  52. Breakpoints
  53. Local Variables
  54. Property/Attribute Aliases
  55. Auxiliary Window
  56. Output
  57.  
  58. Running a program
  59. Finish Routine
  60. Stepping Through Code
  61. Skipping Over Code
  62. Stepping Backward
  63.  
  64. Searching Code
  65. Watch Expressions
  66. Setting or Modifying Values
  67. Breakpoints
  68. Object Tree
  69. Moving Objects
  70.  
  71. Setup
  72. $
  73.  
  74.  
  75. # ---------
  76. # File Menu
  77. # ---------
  78.  
  79. "&Restart restart restarting"
  80. File Menu:  Restart
  81.  
  82. Halts execution of the currently loaded program and reloads the
  83. original program image from disk.  All global variables, array 
  84. values, properties, and attributes are restored to their 
  85. initial (i.e., compile-time) values.
  86.  
  87. Press Enter to confirm or Escape to cancel.
  88. $
  89.  
  90.  
  91. "&Print... print printing"
  92. File Menu:  Print
  93.  
  94. Prints the contents of the current window to the printer
  95. specified in the current Setup (see the Tools Menu).
  96.  
  97. Press Enter to confirm or Escape to cancel.
  98. $
  99.  
  100.  
  101. "E&xit Debugger exit quit exiting quitting"
  102. File Menu:  Exit Debugger
  103.  
  104. Stops execution of the currently loaded program and exits the
  105. Debugger.  (In the Debugger, as opposed to the Hugo Engine, the
  106. 'quit' statement does not force a return to the operating
  107. system; use the "Exit Debugger" command to quit instead.)
  108.  
  109. Press Enter to confirm or Escape to cancel.
  110. $
  111.  
  112.  
  113. # -----------------------------
  114. # View Menu (and other windows)
  115. # -----------------------------
  116.  
  117. "view views window windows switching display displays"
  118. Views
  119.  
  120. The Hugo Debugger allows you to switch between various windows
  121. showing different information about the currently executing
  122. program, all of which are automatically updated as the program
  123. runs.
  124.  
  125. Available views include:
  126.   - Code
  127.   - Watch Window
  128.   - Calls
  129.   - Breakpoints
  130.   - Local Variables
  131.   - Property/Attribute Aliases
  132.   - Help
  133.   - Auxiliary Window
  134.   - Output
  135.  
  136. Help is available on each of these.
  137. $
  138.  
  139. "code current"
  140. Code Window
  141.  
  142. The Code window is where the program code is displayed as it
  143. executes.  Each statement, before it is run, is translated into
  144. its source-level equivalent.  If color display is available,
  145. different elements such as variables, objects, text, etc. will
  146. be displayed in different colors.  (See "Setup" under the Tools
  147. menu.)
  148.  
  149. The current (i.e., about to be run) line is the last-added to
  150. the window.  This line is typically highlighted even when the
  151. Code window is not the active window.
  152.  
  153. Another line is also highlighted, although only when the Code
  154. window is active.  This selected line may be moved to help in
  155. setting breakpoints, etc.
  156.  
  157. See "Shortcut Keys" under the Help menu for information on how
  158. to navigate the Code window.
  159. $
  160.  
  161. "&Watch &Watch... Window watch watches"
  162. Watch Expressions
  163.  
  164. Once a watch expression has been entered using the "Watch..."
  165. option under the Debug menu, it is displayed in the Watch
  166. window as:
  167.  
  168.      <expression> : <value>
  169.  
  170. Some examples of <expression> are:
  171.  
  172.      object.property    (property)
  173.      linelength         (global variable)
  174.      local:4            (local variable)
  175.      array[n]           (array)
  176.      parent(object)     (built-in function)
  177.      a + (5 * b)        (simple expression)
  178.      children(obj) < i  (comparison)
  179.  
  180. (Note that while built-in functions such as parent() may be
  181. used in a watch expression, routines and property routines may
  182. not.  The reason for this is that since watch expressions are
  183. continually and automatically updated, they cannot themselves
  184. contain any program code.)
  185.  
  186. The <value> is automatically updated as the program runs.  As
  187. with all Hugo data types, <value> is a 16-bit integer.  Whether
  188. it is displayed as an integer value, dictionary entry, object
  189. name, etc. is dependent on what is chosen for the "Watch As"
  190. parameter.
  191.  
  192. When the Watch window is the active window, it is possible to
  193. toggle the selected expression (by pressing Enter) between
  194. being a breakpoint or not.  A breakpoint expression forces the
  195. Debugger to suspend execution whenever <value> is non-zero.
  196. Breakpoint expressions are indicated by a "B:" at the start of
  197. the line (and by the breakpoint color, if color is available).
  198. $
  199.  
  200. "&Calls calls call"
  201. View Menu:  Calls
  202.  
  203. The Calls window displays the current nesting of routine calls.
  204. That is, if Routine1 calls Routine2, and Routine2 calls
  205. Routine3, the Calls window would show
  206.  
  207.   Routine1
  208.     Routine2
  209.       Routine3
  210.  
  211. while stepping through Routine3.
  212.  
  213. When a non-linear stepping command is given, such as stepping
  214. backward, the Calls window may be erased, as the previous
  215. nesting of routine calls is no longer applicable.
  216. $
  217.  
  218. "&Breakpoints &Breakpoint... breakpoints breakpoint"
  219. Breakpoints
  220.  
  221. Lines of code can be flagged as breakpoints; when a breakpoint
  222. is encountered, execution is suspended and control is passed to
  223. the Debugger.
  224.  
  225. To set a breakpoint, either select "Breakpoint..." from the
  226. Debug menu, or press the appropriate shortcut key.  Enter the
  227. address of the line to be set as a breakpoint.  If the
  228. currently selected line in the code window is a program
  229. statement (as opposed to some other message), the address of
  230. that line of code becomes the default breakpoint address.
  231.  
  232. In addition to program addresses, other ways to specify a
  233. breakpoint are by entering the routine name as "Routine" or, in
  234. a case where a property is a routine, as "object.property".
  235. $
  236.  
  237. "&Local Variables local locals"
  238. View Menu:  Local Variables
  239.  
  240. Although it is possible to watch local variables in the Watch
  241. window by entering 'local:n' (where n is a value from 1 to 16)
  242. as the watch expression, it is sometimes convenient to readily
  243. bring up a display of all local variables.
  244.  
  245. All local variables in the Local Variables window are watched
  246. as the same data type.  That is, the "Watch As" parameter is
  247. set as a group to integer value, object number, dictionary
  248. entry, routine name, etc.
  249.  
  250. The displayed values of the entire set of local variables are
  251. automatically updated as they change.
  252. $
  253.  
  254. "Property/Attribute &Aliases property attribute properties attributes alias aliases"
  255. View Menu:  Property/Attribute Aliases
  256.  
  257. When property numbers are translated to their souce-level
  258. equivalent by the Debugger (i.e., to the property name), the
  259. name used is the original or first-declared property name.
  260. When a property is an alias of another property, both of them
  261. are represented by the same number, so the Debugger has no way
  262. of knowing if it is actually the alias being used.  (The same
  263. applies to aliased attributes.)
  264.  
  265. For quick reference during Debugging, the Property/Attribute
  266. Aliases window displays a list of which aliases are mapped to
  267. which properties or attributes.
  268. $
  269.  
  270. "A&uxiliary auxiliary"
  271. Auxiliary Screen
  272.  
  273. The Auxiliary screen (or window, depending on your operating
  274. system) is used as a workspace for displaying additional
  275. information without writing to the normal output screen, help
  276. window, or normal Debugger display.
  277.  
  278. The Object Tree, for example, is drawn on the Auxiliary screen.
  279. $
  280.  
  281. "&Output output"
  282. Output Screen
  283.  
  284. The Output screen is the normal program screen.  When a program
  285. is run with the Hugo Engine instead of the Hugo Debugger, all
  286. output--i.e., printed text--is sent to what the Debugger refers
  287. to as the Output screen.
  288. $
  289.  
  290.  
  291. # --------
  292. # Run Menu
  293. # --------
  294.  
  295. "&Go run running program execution executing"
  296. Running a Program
  297.  
  298. Selecting "Go" from the Run menu will execute the currently
  299. loaded program.  If the program has previously been
  300. interrupted, execution is resumed from the current (i.e., next)
  301. line.
  302.  
  303. The view is switched to the Output screen, and the program runs
  304. without interruption until:
  305.  
  306.   - A breakpoint is encountered
  307.   - A watch-expression breakpoint evaluates to a non-zero value
  308.   - Control is manually switched to the Debugger by the user,
  309.     either at an input line or by forcing a break
  310.  
  311. See "Stepping and Tracing" for information on how to trace
  312. execution line-by-line.
  313. $
  314.  
  315. "&Step Step &Over S&kip Next St&ep Back step tracing trace stepping over back skip skipping next finish finishing"
  316. Stepping and Tracing
  317.  
  318. All of the following are available from the "Run" menu, or by
  319. pressing the applicable shortcut key:
  320.  
  321. Finish Routine
  322.   - Suspends tracing until the current routine is completed.
  323.     Tracing is resumed at the previous calling level.
  324.  
  325. Step
  326.   - Allows you to trace program execution line-by-line, seeing
  327.     each statement before it is executed.  Some debugging
  328.     environments refer to this type of function as "Step Into",
  329.     since when, for example, a routine call is encountered,
  330.     tracing continues into (and subsequently out of) that
  331.     routine.
  332.  
  333. Step Over
  334.   - Like normal tracing (i.e, "Step", above), but routine calls
  335.     are not "traced into".  Instead, stepping is suspended for
  336.     the duration of the routine (and any other routines called
  337.     within it).  Stepping is resumed once the initial routine
  338.     call is completed.
  339.  
  340. Skip Next
  341.   - Skips over the next line to be executed without performing
  342.     any other operation.  This is useful, for example, in
  343.     overriding variable assignments, routine calls, etc.
  344.  
  345. Step Back
  346.   - Moves the current code position back to the last-executed
  347.     statement.  Note that stepping backward shouldn't be
  348.     thought of as identical to an "undo" operation--any data
  349.     altered is not reset to the previous value when stepping
  350.     backward.  "Step Back" is most useful for, e.g., modifying
  351.     a value and then re-trying a particular expression,
  352.     function, etc.
  353. $
  354.  
  355.  
  356. # ----------
  357. # Debug Menu
  358. # ----------
  359.  
  360. "&Search Code... search find searching finding"
  361. Searching Code
  362.  
  363. Searches the entire Code window (including non-visible text)
  364. for next occurrence, if any, of the entered string, beginning
  365. with the selected line and continuing to the end of the data in
  366. the Code window.  If no match is found at that point, the
  367. search restarts at the beginning of the Code window text.
  368.  
  369. If the string is found, the next line containing it becomes the
  370. selected line.
  371. $
  372.  
  373. "Set &Value set setting modify modifying value values"
  374. Setting or Modifying Values
  375.  
  376. Any variable data type can be set or modified using this
  377. function.  Enter an expression to modify as:
  378.  
  379.      <expression> = <value>
  380.      <object> is [not] <attribute
  381.  
  382. (The '=' or 'is' must be included, as appropriate.)
  383.  
  384. The assignment will be carried out exactly as if it was part of
  385. normal program execution.
  386. $
  387.  
  388. "Object &Tree &Move Object... object objects tree move moving"
  389. Object Tree
  390.  
  391. To view the current parent-child-sibling hierarchy of objects,
  392. select "Object Tree" from the Debug menu.  To view the entire
  393. tree, enter "nothing" as the starting object, or simply hit
  394. Enter.
  395.  
  396. The object tree will be displayed as:
  397.  
  398.      <parent>
  399.         |
  400.      <child>---<sibling>---...
  401.         |          |
  402.        ...        ...
  403.  
  404. where <parent> is the starting object.
  405.  
  406. To move an object's position, select "Move Object" from the
  407. Debug menu, and enter both the object to be moved and the new
  408. parent object.
  409. $
  410.  
  411.  
  412. # ----------
  413. # Tools Menu
  414. # ----------
  415.  
  416. "&Setup... setup color colors printer"
  417. Setup
  418.  
  419. The Setup menu allows you to alter certain elements of the
  420. Debugger setup.  Depending on your system configuration, not
  421. all setup options may be available.
  422.  
  423. Color
  424.   - If available, allows you to choose various combinations of
  425.     colors and backgrounds to customize the look of the main
  426.     Debugger screen.
  427.  
  428. Printer
  429.   - If available, allows you to select the device name to which
  430.     output will be sent when activating "Print" from the File
  431.     menu.  Enter the device name according to your normal
  432.     operating system nomenclature.  (For example, on a PC, this
  433.     might be "LPT1"; on an Amiga, "PRT:", etc.)
  434. $
  435.  
  436. $end
  437.  
  438. # end of file
  439. # end of file
  440.