NewTools icon indicating copy to clipboard operation
NewTools copied to clipboard

Fastening debugger stack navigation

Open adri09070 opened this issue 1 year ago • 10 comments

Fixes #584 The whole discussion is in this issue.

To fasten the navigation of the debugger stack, I removed the debugger inspector selection remembrance mechanism because it :

  • makes the debugger inspector too long to update. Removing it speeds up makes the process twice faster
  • is not accurate
  • is not much useful, in the end ?

Furthermore, I modified the way the #receiverNodes are built for an StDebuggerContext object. It used to collect allInspectorNodes and then reject the self node, like this:

receiverNodes

	^ self context receiver allInspectorNodes reject: [ :node | 
		  node label = 'self' ]

while #allInspectorNodes actually adds a self node to the nodes returned by #inspectorNodes:

allInspectorNodes
	"Answer a list of attributes as nodes"

	^ { StInspectorSelfNode hostObject: self }, 
		self inspectorNodes

So to spare an unncessary filter, I changed #receiverNodes to this equivalent method:

receiverNodes

	^ self context receiver inspectorNodes

If you have some examples of programs to debug for which the stack navigation was slow, I'm eager to know

adri09070 avatar Jan 15 '24 14:01 adri09070