PR# 14801 Violation of an invariant doesn't give sufficient information
Problem Report Summary
Submitter: randyjohn
Category: EiffelStudio
Priority: Low
Date: 2008/09/18
Class: Bug
Severity: Non-critical
Number: 14801
Release: 6.3.7.4554
Confidential: No
Status: Analyzed
Responsible: jfiat_es
Environment: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 3.0.04506.648)
Synopsis: Violation of an invariant doesn't give sufficient information
Description
When an invariant is violated, there is no mention of the class that the invariant is in. It should be easy enough to add that information. It could be that the full name of a tag for an invariant should include the class name. invariant -- From ARRAY area_exists: area /= Void Here the full name of the tag would be "ARRAY:area_exists". But perhaps the best way would be to stop execution and show the invariant that failed with a green arrow (this goes hand in hand with the next paragraph). In addition, when you hit a breakpoint in a feature that is called by an invariant, there is no information showing how you got there. It is simply a mystery. Perhaps the flat form of a feature should show the class invariant code (goes hand in hand with the above paragraph) or at least a marker indicating where the class invariant is. Or, maybe a false stack frame could be created. Randy
To Reproduce
Problem Report Interactions
Yes, that looks fine. Randy
1. Class name is displayed in Call Stack tool in Eiffel Studio 6.5 (6.5.8.88 GPL Edition - windows) when invariant violated (Snapshot bug14801_1.png attached). So I think this is not a problem now. 2. When hit a breakpoint in a feature that is called by an invariant, it's not very easy to figure out which invariant is calling the feature in the Feature tool. Maybe a execution mark should be added to Feature tool. Suggestion snapshot (bug14801_2.png) attached.