4Dv6 Debugger Class
Notes
We have some stream-of-consciousness notes from the 4Dv6 Debugger
class:
- The new debugger has 5 areas; the Execution Controls, the
Method Area, the Expression Area, the Call Chain Area, the Watch
Area.
- The debugger window elements are completely resizable
internally, and the method area is on the bottom, making expanding
the window very convenient.
- There will be a new item in the design environment for the
persistent breakpoints and traps.
- Conditional breakpoints are expressions that cause a break
when they are true. Traps are breakpoints that happen every time a
particular command is executed in the language.
- Q: Can you drag bac up the call chain? A: No, you can only
reposition the execution cursor within the method you're
debugging.
- When debugging, you're working with a copy of the method
rather than the actual copy in the structure.
- When pointing at a variable or field in the method area, you
get the value of that variable or file. If it's an array, you get
the size of the array. This also works with pictures and BLOBs.
- Q: Can it tell you whether a variable has been explicitly or
implicitly declared? A: No. Use SanityCheck.
- You can look at sets and selections in the same way that you
can look at variables.
- Some of the things you can do with conditional breaks: set
temporary breaks, set persistent breaks, or give them a condition.
You can also specify the number of times a condition has to be met
before breaking. (BG: Whoa!)
- You can put any expression in the Expression area, including
calls to other functions. As well, mathematical expressions may be
evaluated, even if they don't involve any variables.
- The call chain area denotes the type of the calling method,
whether from a form or from another procedure.
- Q: We have heard that 4D is used to write 4D? How do we get
multiple resizable areas in 4D? A: The debugger and the
QuickReport editor are not done in 4D.
- Q: Can you change the font in the expression area? A: It's a
good idea.
- Q: It might be nice also to see the lines indicating the
nesting. Liek the print out. A: That's a good suggestion.
- Q: How do you set a value for a watch, and let it run for a
while? Do you specify the line of code? Or do you specify the
condition and it breaks no matter what procedure it's in? When
this value changes, give me a trace. A: This is already planned
for 6.1
- Q: When breaking on a command, does it break before or after?
A: Before.
- The Watch Area contains an Insider-like list of all the
elements used in the procedures, including files, fields, sets,
sleections, etc., which can be dragged over to the Expression Area
for evaluation.
Back to the DEVCON Update Page...