Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007008 [Squeak Packages] OmniBrowser feature always 04-10-08 01:21 12-15-08 21:53
Reporter kbrown View Status public  
Assigned To dr
Priority normal Resolution reopened  
Status assigned  
Summary 0007008: 'toggle break on entry' is not available in default System Browser method pane
Description 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
Additional Information '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
Attached Files  BreakPointManager_installInClassselector_Patch_M7008_nice.1.cs [^] (856 bytes) 04-10-08 22:05

- Relationships
related to 0007007closed andreas Squeak 'toggle break on entry' from method list pane doesn't work 

- Notes
(0011989 - 337 - 472 - 472 - 472 - 472 - 472)
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 - 154 - 154 - 154 - 154 - 154 - 154)
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 - 43 - 43 - 43 - 152 - 152 - 152)
Damien Cassou
04-11-08 05:54

Maybe the fix applies to bug 0007007 instead?
 
(0011997 - 274 - 292 - 398 - 398 - 398 - 398)
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 - 58 - 58 - 58 - 58 - 58 - 58)
Damien Cassou
04-11-08 10:51

Fixed in OB-Standard-dr.329. Thank you for the bug report.
 
(0012005 - 426 - 432 - 432 - 432 - 432 - 432)
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 - 101 - 107 - 107 - 216 - 216 - 216)
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 - 542 - 572 - 572 - 572 - 572 - 572)
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 - 621 - 932 - 932 - 932 - 932 - 932)
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 - 336 - 372 - 372 - 372 - 372 - 372)
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 - 234 - 258 - 258 - 258 - 258 - 258)
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 - 1568 - 1838 - 2734 - 2734 - 2734 - 2734)
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 - 242 - 248 - 248 - 248 - 248 - 248)
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 - 325 - 337 - 337 - 337 - 337 - 337)
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 - 193 - 199 - 199 - 199 - 199 - 199)
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 - 551 - 551 - 551 - 551 - 551 - 551)
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 - 555 - 573 - 573 - 573 - 573 - 573)
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 - 678 - 708 - 708 - 708 - 708 - 708)
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.
 

- Issue History
Date Modified Username Field Change
04-10-08 01:21 kbrown New Issue
04-10-08 22:00 nicolas cellier Note Added: 0011989
04-10-08 22:05 nicolas cellier File Added: BreakPointManager_installInClassselector_Patch_M7008_nice.1.cs
04-11-08 00:40 kbrown Note Added: 0011990
04-11-08 05:54 Damien Cassou Note Added: 0011991
04-11-08 05:54 Damien Cassou Status new => assigned
04-11-08 05:54 Damien Cassou Assigned To  => Damien Cassou
04-11-08 05:55 Damien Cassou Project Squeak => Squeak Packages
04-11-08 05:57 Damien Cassou Severity minor => feature
04-11-08 05:57 Damien Cassou Status assigned => confirmed
04-11-08 05:57 Damien Cassou Projection none => minor fix
04-11-08 05:57 Damien Cassou Category Browser => OmniBrowser
04-11-08 05:57 Damien Cassou os OS X =>
04-11-08 05:57 Damien Cassou os_build 10.5.2 =>
04-11-08 05:57 Damien Cassou platform MacPro =>
04-11-08 10:30 dr Note Added: 0011997
04-11-08 10:51 Damien Cassou Status confirmed => closed
04-11-08 10:51 Damien Cassou Note Added: 0011998
04-11-08 10:51 Damien Cassou Resolution open => fixed
04-11-08 17:19 kbrown Status closed => feedback
04-11-08 17:19 kbrown Resolution fixed => reopened
04-11-08 17:19 kbrown Note Added: 0012005
04-11-08 19:46 nicolas cellier Note Added: 0012007
04-11-08 20:02 dr Note Added: 0012008
04-11-08 20:27 kbrown Note Added: 0012009
04-11-08 20:35 dr Note Added: 0012011
04-11-08 20:36 nicolas cellier Note Added: 0012012
04-11-08 21:16 kbrown Note Added: 0012013
04-11-08 21:28 nicolas cellier Note Added: 0012015
04-13-08 17:58 Damien Cassou Relationship added related to 0007007
05-16-08 22:09 kbrown Note Added: 0012101
05-19-08 08:52 dr Note Added: 0012121
12-14-08 16:51 kbrown Note Added: 0012847
12-15-08 08:39 Damien Cassou Status feedback => assigned
12-15-08 08:39 Damien Cassou Assigned To Damien Cassou => dr
12-15-08 17:55 dr Note Added: 0012848
12-15-08 21:53 kbrown Note Added: 0012849


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
129 total queries executed.
76 unique queries executed.
Powered by Mantis Bugtracker