Graphical environment
- Added auto expressions on watch tools, it suffices to toggle the auto button in any of the watch tool's toolbar.
- Enhanced breakpoint mechanism by adding print message, hit count (condition), and provide Is True and Has Changed condition.
- Improved the debugging options dialog with the ability to define the environment variables passed down to the debugged application.
- Added some configuration of the Objects tool grid. It is now possible to change the order of 'Current, arguments, locals, ...'.
- Added start workbench and finalized system on Debugging option dialogs.
- Added a new way to look at objects with the object viewer.
- Added a rescue clause indicator in call stack tool's grid.
- One can decide to stay in debugging mode even when compiling.
- Added possibility to continue on conditional breakpoint evaluation failure.
- Removed useless Attributes row in debugger's objects tree.
- The once routines node now shows states of once procedures in addition of the state of once functions.
- Improved cosmetic of debugger's exception handling dialog.
Debugger engine
- Added support for creation of instance of class (including generic).
- Added support for manifest TUPLE, and manifest ARRAY.
- Added support for static routine evaluation.
- Added ability to disable/restore assertion checking during debugging.
- Added evaluation of instructions with the debugger (i.e: procedure call).
- Fixed bug#12934 where the debugger would cause a memory corruption in a running multithreaded program.
- Fixed bug#12750 where the stack overflow detection was not working on Linux.
- Fixed bug#11755 where empty strings with a large capacity were slow to be displayed.
Current restrictions and known issues
General limitations:
- Watch expression: Agent are not supported (for instance "agent my_function" is not supported".
- You cannot yet create an instance of SPECIAL.
- The debugger is not very helpful when the execution is stopped in an invariant.
Limitations or known bugs for the Classic debugger:
- Evaluate Precursor will result the current feature's result (not the precursor)
- If you use any of the previous non supported expression in a breakpoint condition, the condition will always return True, and the debugger will stop on such condition breakpoint
Limitations or known bugs for the .Net debugger:
- When stepping through disabled assertions or disabled debug clauses, the debugger may show incorrect current line.
- When stepping through an inspect code, the debugger may show incorrect current line (especially if the inspect is not ordered)
- Under dotnet v2.0 beta, the debugger may have difficulties to fetch the stack values, especially during first chance exception events
Various known bugs for classic system :
- Wrong assertion tag shown in debugger for precondition violation if violated during an exception rescue, indeed the tag remains the one from the exception
- "Disable Assertion Handling" may be cancel if used in an exception rescue context