Debugger Test Plan

1 Introduction

1.1 Scope

The changes/improvements in the EiffelStudio Debugger from Eiffel 5.7 to 6.0 are the following.
  • 1.1.1 Improved performance and overall robustness, particular for .Net targets.
  • 1.1.2 Addition of a console-based debugger via –debug or –loop options.
  • 1.1.3 Enhanced Breakpoint Mechanism
    • 1.1.3.1 Tracepoints
    • 1.1.3.2 Hit Counts
    • 1.1.3.3 Conditionals (‘Is True” / “Has Changed”)
  • 1.1.4 Improvements in Expression Evaluation
    • 1.1.4.1 Instruction Evaluation (dynamic procedure execution)
    • 1.1.4.2 Expressions are evaluated with no assertions by default but this can altered on an individual expression basis
    • 1.1.4.3 Full support for disabling/restoring assertion checking at runtime for all debuggee targets.
  • 1.1.5 Improvements in Debugger Graphical Display
    • 1.1.5.1 Complete Redesign of the Debugging Options Dialog
      • 1.1.5.1.1 Better Dialog for Argument Setting and Working Directory
      • 1.1.5.1.2 Environment variables can now be added or modified for use by the debuggee
      • 1.1.5.1.3 Now Workbench and Finalized versions can be executed outside of the IDE
    • 1.1.5.2 Debuggee can be restarted without un-raising and then re-raising the interface
    • 1.1.5.3 Environment can now be forced to stay in debugger mode
    • 1.1.5.4 New Object Viewer Tool
      • 1.1.5.4.1 Objects can be fully browsed
      • 1.1.5.4.2 Structure can be outputted/dumped to text or XML for a structured of human-readable object representation
      • 1.1.5.4.3 Order of ‘Current Object’, ‘Locals’ and ‘Arguments’ can now be reordered
    • 1.1.5.5 Call Stack Tool now indicates features with a rescue clause
    • 1.1.5.6 Objects Grid has been improved via removal of redundant attributes title row
    • 1.1.5.7 Debugger now shows state of ‘Once Functions’ and now ‘Once Procedures’
    • 1.1.5.8 Improvements to Watch Tool
      • 1.1.5.8.1 Generation of Auto Expressions
      • 1.1.5.8.2 Ability to Save Expressions?
      • 1.1.5.8.3 Allow Object Creation Expressions? (Works for non-generic classes, but not for TUPLE)

1.2 Assumptions

  • 1.2.1 All additions and improvements mentioned in 1.1 have been implemented with no known bugs

2 System Test Plan for the EiffelStudio Debugging Mechanism (Debugger)

2.1 Objectives

A Test Plan for the EiffelStudio Debugging Mechanism should support the following objectives:
  • 2.1.1 To document the methods used and results attained when testing the additions/improvements to the debugging facilities .
  • 2.1.2 To communicate to the Debugger Team the any issues found due to the resulting test failures/discrepancies.
  • 2.1.3 To define the sources of the information used to prepare the plan.
  • 2.1.4 To define the test tools and environment needed to conduct the system test.

2.2 Background

From November 2006 to May 2007, the EiffelStudio Debugging Mechanism Team have developed improvements and new features for new Eiffel Studio version 6.0.

2.3 Scope

This test plan covers a full test of the EiffelStudio Debugging Mechanism’s new features and improvements which were developed between EiffelStudio versions 5.7 and 6.0.

2.4 References

Online Google doc: http://docs.google.com/Doc?id=dgvcsvkd_184ffqdn DEBUGGER/Jocelyn part.

3 Test items

  • 3.1 EiffelStudio Source Code and supporting library code
  • 3.2 EiffelStudio executable

Issues between 31/05 and ...

  • New
    • bug#12923
    • bug#12915
    • bug#12919
    • bug#12905: Debugger won't let me discard profile changes when click Run in Debugging Options
    • bug#12906: Debugger Control+Enter brings up menu of existing env variables in wrong location
    • bug#12907: Debugger scroll area with profiles not wide enough to see all text initially
    • bug#12924: Watch expression with Class context on SUBSET_STRATEGY causes crash
  • Fixed
    • bug#12923: Class context watch expression with no class specified causes crash
    • bug#12915: Thread panel does not reveal itself if selected from Call Stack tool 'Show Threads Panel' and tool i
    • bug#12919: Call stack pane doesn't make itself visible when an exception is encountered during debugging
    • part 1. of bug#12606 : Stepping with Auto Expressions in sample graphical app causes crash (related to static call evaluation on precompiled class)
    • bug#12924: Watch expression with Class context on SUBSET_STRATEGY causes crash

Fixed between 05/21 and 05/30

  • Fixed issues (nb=19)
    • bug#12747 debugger postcondition violation
    • bug#12531 Froce debugger session is enabled for .NET dlls
    • bug#12803: Unable to evaluate .NET function call
    • bug#12605: Auto expression for `a /= Void or else b /= Void' reports bogus VWOE error
    • bug#12750: Stack overflow not working on Linux 64bits
    • bug#12705: Debugger cannot launch application if environment variable added
    • bug#12848: Debugging Profiles should start number at #1 not #0
    • bug#12829: Multiple problems with command line debugger
    • bug#12566: Debugger hangs on expanding object when catching a segmentation violation
    • bug#12867: Odd crash whilst debugging EiffelStudio
    • bug#12866: Precondition violation when stepping through agent creation
    • bug#12871: Precondition violation while debugging .NET application
    • bug#12885: Watch expression with Class context which keeps assertion checking changes class name
    • bug#12884: Evaluation of Watch expression with Class context on external fails
    • bug#12545: EiffelStudio debugger freezes ra segmentation fault occurs
    • bug#12476: Multiple problems with setting debugger arguments
    • bug#12722: Setting environment variables in Debugging Options dialog and then executing system sometimes leaves
    • bug#12899: Adding environment variable in empty row in Debugging Options causes crash
    • bug#12722: Setting environment variables in Debugging Options dialog and then executing system sometimes leaves
  • Figures
    • kb= 6
    • A ... needed to be computed
    • r = 10 / 6 = 1.6
    • nb fixed by day: 19 / 6 = 3,2

Fixed between 05/13 and 05/20

  • Fixed bug#12725: Crash debugging .NET application call on Void which was preventing debugging dotnet system.
  • Fixed bug#12626: Object viewer is not read only
  • Fixed bug#12717: (create {SPECIAL [NATURAL_8]}.make (10)).put (1, 1) expression crashes debugger. (For now creation of SPECIAL are not supported).
  • Fixed bug#12604: Evaluating watch expression which is static access of external fails
  • Fixed bug#12705: Debugger cannot launch application if environment variable added
  • Fixed bug#12691: Object Viewer windows not shown relative to debugging window
  • Fixed part of bug#12696: Added support for static routine evaluation for debugger.
  • Fixed (part of) bug#12696, Now if an auto expression has an error, the expression won't be displayed
  • Fixed bug#12723: Edit Expression button brings up 'New Expression' dialog
  • Fixed bug#12724: Restart option not available in Debug Menu
  • Fixed issue with .NET 2.0 to get the System.String's text.

Current known issues (from support.eiffel.com)

  • Linux/Solaris related : important
    • bug#12750 Stack overflow not working on Linux 64bits
    • bug#12335 Cannot execute system via debugger or finalized system if path has spaces
    • bug#12705 Debugger cannot launch application if environment variable added
    • bug#12661 Debugger on x86 Mac/X11 corrupts string arguments

  • Crash or Hanging up -> critical
    • bug#12606 Stepping with Auto Expressions in sample graphical app causes crash
    • bug#12672 Infinite recursion causes seg fault in workbench code and stack trace output issue

  • Evaluator :
    • bug#12605 Auto expression for `a /= Void or else b /= Void' reports bogus VWOE error

  • Code itself

  • GUI : minor
    • bug#12476 Multiple problems with setting debugger arguments
    • bug#12531 Froce debugger session is enabled for .NET dlls
    • bug#10533 Run finalize system is never disabled.
    • bug#12714 Run Finalized should perhaps only be enabled when a finalized system is available

  • Won't be fixed (old or not before 6.0)
    • bug#12583 Debugger hangs ES when hitting CTRL+C
    • bug#11255 Debugger gets it all wrong in .NET
    • bug#4731 Routine name longer than 512 characters kills debugger
    • bug#4717 Eiffel studio debugger can stop program while it has mouse and keyboard grab and then must kill X se
    • bug#4763 Wrong assertion tag shown in debugger for precondition violation

  • FIXED
    • bug#12604 Evaluating watch expression which is static access of external fails
    • bug#12691 Object Viewer windows not shown relative to debugging window
    • bug#12696 Bug in Auto Expressions and Inline Agents

Test cases

IDNameLast changesort iconSeverityLast test runLast test dateLast test result
tcs#313Debugger and .Net specific features1 year 25 weeks agoMinortrr#3151 year 25 weeks agoFailedCreate TRR
tcs#306Debugger Multi-threading1 year 26 weeks agoMinortrr#3141 year 25 weeks agoFailedCreate TRR
tcs#96Debugger Object Viewer Tool1 year 26 weeks agoMinorNot yet runCreate TRR
tcs#79New Raising/Unraising and Assertion Checking Options1 year 26 weeks agoSerioustrr#3031 year 26 weeks agoPassedCreate TRR
tcs#61Debugging Options Dialog1 year 26 weeks agoMinortrr#3011 year 26 weeks agoPassedCreate TRR
tcs#59Debugger Expression Evaluation and Watch Tool1 year 26 weeks agoSerioustrr#3001 year 26 weeks agoFailedCreate TRR
tcs#53Debugger Breakpoints, Conditions and Hit Count functionality1 year 26 weeks agoSerioustrr#2991 year 26 weeks agoPassedCreate TRR
tcs#46Console Debugger Features1 year 26 weeks agoMinorNot yet runCreate TRR