Mantis - Squeak Packages
Viewing Issue Advanced Details
7008 OmniBrowser feature always 04-10-08 01:21 12-15-08 21:53
kbrown  
dr  
normal  
assigned 3.10  
sq3.10-7159dev08.04.1 reopened  
minor fix    
none  
0007008: 'toggle break on entry' is not available in default System Browser method pane
open a System Browser in a fresh sq3.10-7159dev08.04.1 image, select any class and a method in the right hand pane, 'toggle break on entry' is not available from the menu
Select any method in the right hand pane, 'toggle break on entry' is not available from the menu
'toggle break on entry' is available in method pane of
PackagePaneBrowser
Browser
and
RefactoringBrowser

It is not available in
OBSystemBrowserAdaptor open x
or
OBPackageBrowserAdaptor open x
related to 0007007closed andreas Squeak 'toggle break on entry' from method list pane doesn't work 
 BreakPointManager_installInClassselector_Patch_M7008_nice.1.cs [^] (856 bytes) 04-10-08 22:05

Notes
(0011989)
nicolas cellier   
04-10-08 22:00   
The bug is in BreakPointManager class>>#installInClass:selector:

at the end, it says:
    aClass class basicAddSelector: aSymbol withMethod: breakMethod.
should be:
    aClass basicAddSelector: aSymbol withMethod: breakMethod.

Modified tpr 9/26/2006

code in 3.8 was correct:
    aClass methodDictionary at: aSymbol put: breakMethod.
(0011990)
kbrown   
04-11-08 00:40   
I tried this fix out in a fresh sq3.10-7159dev08.04.1 but I still cannot see the 'toggle break on entry' in the method pane of the default system browser.
(0011991)
Damien Cassou   
04-11-08 05:54   
Maybe the fix applies to bug 0007007 instead?
(0011997)
dr   
04-11-08 10:30   
Right, this patch fixes 7007, great.

This report is only about the fact that OBSystemBrowser doesn't have a command installed in the method menu to toggle a break.
I added such a command in package OB-Standard, version dr.329, loadable from http://source.wiresong.ca/ob. [^]
(0011998)
Damien Cassou   
04-11-08 10:51   
Fixed in OB-Standard-dr.329. Thank you for the bug report.
(0012005)
kbrown   
04-11-08 17:19   
Tried the OB-Standard-dr.329 out in a fresh sq3.10-7159dev08.04.1 and noticed that when you execute 'toggle break on entry' on a method in the default browser, it does not have annotation or indication that the break is set. The menu entry is there now but break does not work, even with Mantis 2007 fix.
Being able to clear all breakpoints via something like BreakpointManager clear from a menu somewhere would be good too..
(0012007)
nicolas cellier   
04-11-08 19:46   
Oops, of course my patch were for 0007007.
I must have pressed accidentally the 'toggle mantis entry'.
(0012008)
dr   
04-11-08 20:02   
OB-Standard-dr.329 does add the 'self break' to the method for me, provided that BreakPointManager class>>#installInClass:selector: is fixed as suggested by nicolas cellier in this report.
Can you tell me how BreakPointManager class>>#installInClass:selector: reads in your image and whether it gets executed when you toggle the break from the menu?

In version OB-Standard-dr.334 I then also added an annotation - you should get a red flag to the left of the method name in the method list when you have added a break point successfully.
(0012009)
kbrown   
04-11-08 20:27   
installInClass: aClass selector: aSymbol
    "Install a new method containing a breakpoint.
    The receiver will remember this for unstalling it later"

    | breakMethod |
    breakMethod := self compilePrototype: aSymbol in: aClass.
    breakMethod isNil
        ifTrue: [^ nil].
    self installed at: breakMethod put: aClass >> aSymbol. "old method"
    aClass class basicAddSelector: aSymbol withMethod: breakMethod.

Mantis 7007 was applied.
I thought the fix was included in the Mantis 7007 cs.
Loading OB-Enhancements-dr.144.mcz has broken the loading of OBPackageBrowserAdaptor at the moment so not sure if it gets executed.
(0012011)
dr   
04-11-08 20:35   
ah, this is the problem, the last line of BreakPointManager class>>#installInClass:selector: should read:
aClass basicAddSelector: aSymbol withMethod: breakMethod.
(without sending #class to aClass)
Then it works.

The problem with OB-Enhancements-dr.144.mcz we better discuss in the ob-dev mailing list where I asked for feedback.
(0012012)
nicolas cellier   
04-11-08 20:36   
No patch from 7007 is not installed (should be aClass basic... instead of aClass class).
How did you Install?
Installer ensureFix: 7007 ?

If you used Installer, then retry it, i just added the magical script (see last 7007 note).
(0012013)
kbrown   
04-11-08 21:16   
Hmmm...works now!
I was doing Installer mantis justFixBug: 0007007. but somehow the fix wasn't installed.
Now it is.
Also get a nice little red flag on the method with the breakpoint.

I've been doing the following in a fresh sq3.10-7159dev08.04.1, now without OB-Enhancements-dr.144.mcz and OB-Enhancements-dr.145.mcz, either one kills loading the default browser:
"fixes for Mantis 7008: 'toggle break on entry' is not available in default System Browser method pane"
Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Standard-dr.329.mcz'.


"fixes for Mantis 0007009: System Browser naming is inconsistent"
Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Standard-dc.328.mcz'.

Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Enhancements-dc.139.mcz'.

"fixes for Mantis 007007: 'toggle break on entry' from method list pane in debugger doesn't work"
Installer mantis justFixBug: 0007007.

"fixes for Mantis 7011: Very first menu item in a package browser offers remove (x)"
Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Standard-dr.332.mcz'.

"Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Enhancements-dr.144.mcz'."

"Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Enhancements-dr.145.mcz'."

Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Standard-dr.333'.

Installer monticello http: 'http://source.wiresong.ca/ob/'; [^]
install: 'OB-Standard-dr.334'.
(0012015)
nicolas cellier   
04-11-08 21:28   
Yes, Installer mantis requires and will use last mantis note containing some key comments (fix begin fix test and fix end) and load instructions.
Otherwise, it has no idea to guess which Patch and Test file to load among possibly a bunch of.
(0012101)
kbrown   
05-16-08 22:09   
In sq3.10-7159dev08.05.2, if you open OB Package Browser on Installer, and do 'toggle break on entry' when view: is selected in the method pane, no annotation shows (no red flag), beside the method selector to show that the breakpoint is set.

If you click on the Class button, the flag appears next to view: for the class.
(0012121)
dr   
05-19-08 08:52   
Have you applied the patch provided for bug 0007007? (also appended to this bug)
This patch hasn't been added to the dev-image yet, that's probably the reason why you encounter this phenomena.
(0012847)
kbrown   
12-14-08 16:51   
In sq3.10.2-7179dev08.12.1, with patch from bug 7007 applied, performing the steps to reproduce from bug 7007, the Debugger indeed can add 'self break.' to the method, however if you have a System Browser open on the method in question already, the 'self break.' does not appear until you refresh the view in the Browser. Also, there is no annotation icon displayed in OB Package Browser when the self break is active. OB Package browser is the default system browser. It would be nice to see the results of the method change updated in the Browsers.
(0012848)
dr   
12-15-08 17:55   
Unfortunately this is not so easy to fix:
- Updating all opened browsers when changing code in eg. a debugger causes a considerable slowdown. That's why the refresh gets delayed until World steps in. OB always worked like that, but it could be that stepping in by World changed in the meantime to step in less often? Could that be? Because it used to work quite well in older images.

- Concerning the break icon: The Seaside people removed this icon from OB because they also use the msg send #break for the html break... I can re-introduce it, but...
(0012849)
kbrown   
12-15-08 21:53   
I notice that OB-Wrapper is not loaded in sq3.10.2-7179dev08.12.1. The comment for its OBCodeBrowser says:
OBCodeBrowser is a superclass for all browsers which active code in the image. It provides methods for registering with the SystemChangeNotifier and updating it's display when it receives notification of system changes.

Might this be related to the not updating issue?

Regarding #break, seems like this should be resolved somehow. I would prefer having the icon show even if sometimes it showed for html break. Seems more logical to me tho to change the seaside #break to #htmlbreak or something appropriate since it is conflicting with the #break for breakpoints.