[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