PR# 19086 [RJ] 'dispose' is not called
Problem Report Summary
Environment: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Synopsis: [RJ] 'dispose' is not called
If you use the 'objects' pane to view a non-Void object, and then exit, 'dispose' is not called on that object. Run the example below. With no breakpoints, it prints "a" and "b". If you stop at the indicated line and examine the value of 'a' in the 'objects' pane, only "b" is printed upon exit. Randy
class ROOT create make feature make local a: MY_MEMORY b: MY_MEMORY do create a.make("a") create b.make("b") b := Void end -- Put a breakpoint here. end class MY_MEMORY inherit MEMORY redefine dispose end create make feature make(a_value: STRING) do value := a_value end dispose do print(value + "%N") end value: STRING end
Problem Report Interactions
From:manus_eiffel Date:2015/08/05 Download
It should not be too hard to add the notification, but this will have to wait for the fall release.
From:axarosenberg Date:2015/08/05 Download
Well, it was a major issue trying to debug my problem, but now that I know what is happening it isn't. But I don't see why 'reclaim' (or a caller of 'reclaim') couldn't interact with the debugger first and get it to release all of its references. Are you saying that it is too hard to fix at all or too hard to fix right away? (I can accept the latter). Randy
From:manus_eiffel Date:2015/08/05 Status: Analyzed Download
Debugging has some side effects. We use the ability to keep objects alive for the whole duration of the system execution whenever we look at a variable in the debugger. Unfortunately the debugger does not know when the program has completed its execution, so it does not release all the objects it kept alive. Is this a major issue at the moment when you debug?