PR# 15384 Debugger does not step at correct position.
Problem Report Summary
Submitter: ted_eiffel
Category: EiffelStudio
Priority: Medium
Date: 2009/02/11
Class: Bug
Severity: Serious
Number: 15384
Release: 6.4.7.7057
Confidential: No
Status: Closed
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Synopsis: Debugger does not step at correct position.
Description
See attached video.
To Reproduce
Compile the example for EiffelParse library. Debug the following routine as the video demos: {AGGREGATE}.parse_body
Problem Report Interactions
Fixed by rev#77146
I believe there is a bug in the feature tool that puts an extra breakable slot when it should not, because the compiler does not generate the precondition at all, as it is always true.
I am working on fixing this at the formatter level. Patch ready soon...
note that this bug is also present in 6.2.7.3753 (and 6.3)
small system to reproduce check generated C code fro {BAR}.foo no precondition code is generated BUT in the feature tool, we have that output (there is an extra breakable slot) foo -- (from BAR) require -- from FOO True require else -- from BAR O pre: pre do O print ("foo") O print ("bar%N") O end It seems to me that "require else" are never generated in this case. Which might be logical, since this is a "require else" and inherited missing precondition stands for ... "True" This shows that adding precondition when redefining a feature without any precondition is .. useless.
It seems that the compiler does not generate RTHOOK when dealing with "require else" and precursor without any precondition foo require else pre: pre do print ("foo") print ("%N") end
In Feature tool, you can see that the execution should never go back to the line `print ("expanding %N")' after the first reach. It looks like the indicating arrow shifts line number by 1.
can you just describe in word, where the stepping is wrong? This will save me some time, trying to figure out from the video. (of course I will try to reproduce, but in the meantime, this might indicate me where to look for)