[Vm-dev] VM Maker: VMMakerUI-eem.50.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Nov 14 22:09:26 UTC 2021
Eliot Miranda uploaded a new version of VMMakerUI to project VM Maker:
http://source.squeak.org/VMMaker/VMMakerUI-eem.50.mcz
==================== Summary ====================
Name: VMMakerUI-eem.50
Author: eem
Time: 14 November 2021, 2:09:25.336369 pm
UUID: ee5842a1-ebce-489c-889e-6e2ce20bad17
Ancestors: VMMakerUI-eem.49
Changes to adapt to VMMaker.oscog-eem.3100
=============== Diff against VMMakerUI-eem.49 ===============
Item was changed:
----- Method: CogAbstractFrameInspector>>textForFramePointer:stackPointer: (in category 'accessing - ui') -----
textForFramePointer: framePointer stackPointer: stackPointer
"Print and emphasize the frame text as efficiently as possible, deferring as much interpretation until evaluation time."
| frameString frameText |
(force or: [coInterpreter stackPages apparentlyValidFramePointer: framePointer stackPointer: stackPointer]) ifFalse:
[^('Invalid Frame fp: ', (framePointer isInteger ifTrue: [framePointer hex allButFirst: 3] ifFalse: [framePointer printString]),
' sp: ', (framePointer isInteger ifTrue: [framePointer hex allButFirst: 3] ifFalse: [framePointer printString])) asText allBold].
frameText := (String streamContents: [:fs| coInterpreter printFrame: framePointer WithSP: stackPointer on: fs]) allButFirst asText.
(frameString := frameText string)
findTokens: {Character cr}
indicesDo:
[:start :stop| | firstColonIndex fieldNameIndex fieldNameEndIndex valueIndex |
start = 1
ifTrue:
[self windowTitle: (self windowTitleFrom: (frameString copyFrom: 1 to: stop)).
frameText
addAttribute: (PluggableTextAttribute evalBlock: [(CogFrameInspector on: coInterpreter)
framePointer: framePointer;
open])
from: 1
to: (frameString indexOf: Character space startingAt: 4) - 1]
ifFalse:
+ ["Lines may start with an fp/sp indication..."
+ fieldNameIndex := (firstColonIndex := frameString indexOf: $: startingAt: (frameString indexOfSubCollection: '16r' startingAt: start) + 1) + 1.
- [fieldNameIndex := (firstColonIndex := frameString indexOf: $: startingAt: start + 1) + 1.
[(frameString at: fieldNameIndex) = Character space] whileTrue:
[fieldNameIndex := fieldNameIndex + 1].
fieldNameEndIndex := (frameString indexOf: $: startingAt: fieldNameIndex + 1) - 1.
valueIndex := fieldNameEndIndex + 2.
[(frameString at: valueIndex) = Character space] whileTrue:
[valueIndex := valueIndex + 1].
valueIndex < stop ifTrue: "greater for 'INVALID RECEIVER'"
[(self evalAttributeForFieldName: (frameString copyFrom: fieldNameIndex to: fieldNameEndIndex)
framePointer: framePointer
value: (frameString copyFrom: valueIndex to: stop)
addressString: (frameString copyFrom: start to: firstColonIndex - 1))
ifNotNil:
[:attribute| frameText addAttribute: attribute from: fieldNameIndex to: fieldNameEndIndex]]]].
^frameText!
Item was changed:
----- Method: Cogit>>headStackPointer (in category '*VMMakerUI-accessing') -----
headStackPointer
<doNotGenerate>
^processorFrameValid
+ ifTrue: [self smalltalkStackPointerRegisterValue]
- ifTrue: [NativeSPReg = SPReg
- ifTrue: [processor sp]
- ifFalse: [processor registerAt: SPReg]]
ifFalse: [coInterpreter headStackPointer]!
More information about the Vm-dev
mailing list