Release notes for EiffelStudio 6.0 related to the debugger

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