[squeak-dev] The Trunk: Tools-eem.1060.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jul 1 21:40:59 UTC 2021

Eliot Miranda uploaded a new version of Tools to project The Trunk:

==================== Summary ====================

Name: Tools-eem.1060
Author: eem
Time: 1 July 2021, 2:40:56.604268 pm
UUID: 812128d2-6043-4a23-b5ad-307b59d7063a
Ancestors: Tools-eem.1059

Use a much more straight-0forward and accurate way to determine if the debugger is at an initial break in toggle break on entry.  Also remember to test the result of the determination ;-)

=============== Diff against Tools-eem.1059 ===============

Item was changed:
  ----- Method: Debugger>>toggleBreakOnEntry (in category 'breakpoints') -----
  	"Override to rset to the new breakless method if stopped at a break point.
  	 N.B. does not (yet) do the reverse."
+ 	| ctxt prevPC atInitialBreak newMethod |
- 	| ctxt prevPC bytecodeMessage atInitialBreak newMethod |
  	((ctxt := self selectedContext) isNil
  	or: [(prevPC := ctxt previousPc) isNil]) ifTrue:
  		[^super toggleBreakOnEntry].
+ 	atInitialBreak := ctxt selectorJustSentOrSelf == #break
+ 					and: [(ctxt method pcPreviousTo: ctxt previousPc) = ctxt method initialPC].
- 	bytecodeMessage := ctxt method abstractBytecodeMessageAt: ctxt previousPc.
- 	atInitialBreak := bytecodeMessage selector = #send:super:numArgs:
- 					and: [bytecodeMessage arguments = #(break false 0)].
  	super toggleBreakOnEntry.
+ 	newMethod := ctxt method methodReference compiledMethod.
+ 	(atInitialBreak
+ 	and: [newMethod isCompiledCode
+ 	and: [newMethod ~~ ctxt method]]) ifTrue:
- 	((newMethod := ctxt method methodReference compiledMethod) notNil
- 	and: [newMethod ~~ ctxt method]) ifTrue:
  		[ctxt privRefreshWith: newMethod.
  		 self resetContext: ctxt.
  		 self debug]!

More information about the Squeak-dev mailing list