[Vm-dev] VM Maker: VMMakerUI-eem.44.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Aug 6 02:58:56 UTC 2021
Eliot Miranda uploaded a new version of VMMakerUI to project VM Maker:
http://source.squeak.org/VMMaker/VMMakerUI-eem.44.mcz
==================== Summary ====================
Name: VMMakerUI-eem.44
Author: eem
Time: 5 August 2021, 7:58:54.727419 pm
UUID: ec341765-b684-4627-bb9c-00ea24345781
Ancestors: VMMakerUI-mt.43
Correct the CogProcessorALienInspector when the pc is at an illegal address; look up the address and print it if it resolves to something meaningful.
=============== Diff against VMMakerUI-mt.43 ===============
Item was changed:
----- Method: CogProcessorAlienInspector>>text (in category 'accessing - ui') -----
text
^Text streamContents:
[:s | | max exclude fpstate |
+ cogit ifNotNil:
+ [(cogit addressIsInCodeZone: processor pc)
+ ifTrue:
+ [s tab;
+ nextPutAll: (processor decorateDisassembly: (processor disassembleInstructionAt: processor pc In: memory)
+ for: cogit
+ fromAddress: processor pc).
+ (cogit lookupAddress: processor pc) ifNotNil:
+ [:where| s tab: 2; nextPutAll: where]]
+ ifFalse:
+ [(cogit lookupAddress: processor pc) ifNotNil:
+ [:where| s tab: 2. processor pc printOn: s base: 16. s tab; nextPutAll: where]]].
+ s cr.
- (cogit notNil
- and: [cogit addressIsInCodeZone: processor pc])
- ifTrue:
- [s tab;
- nextPutAll: (processor decorateDisassembly: (processor disassembleInstructionAt: processor pc In: memory)
- for: cogit
- fromAddress: processor pc).
- (cogit lookupAddress: processor pc) ifNotNil:
- [:where| s tab: 2; nextPutAll: where].
- s cr]
- ifFalse: [s cr].
max := (registerSelectors ifEmpty: [1] ifNotEmpty: [:selector | (selector collect: #size) max]).
exclude := Set new.
1 to: (fpstate := processor floatingPointRegisterStateGetters) size by: 4 do:
[:index|
((index to: index + 3) allSatisfy: [:fpri| (processor perform: (fpstate at: fpri)) isZero]) ifTrue:
[exclude addAll: (fpstate copyFrom: index to: index + 3)]].
registerSelectors do:
[:selector | | attribute |
(exclude includes: selector) ifFalse:
[s
nextPutAll: ((selector asUppercase padded: #right to: max with: Character space)
asText addAttribute: (attribute := PluggableTextAttribute evalBlock: [self interpret: selector]));
space;
nextPutAll: (self registerTextAt: selector).
(registerMap at: selector ifAbsent: []) ifNotNil:
[:abstractReg|
s space; nextPutAll: (abstractReg asText addAttribute: attribute)].
s cr]]]!
More information about the Vm-dev
mailing list