Eliot Miranda uploaded a new version of CogTools to project VM Maker: http://source.squeak.org/VMMaker/CogTools-eem.92.mcz
==================== Summary ====================
Name: CogTools-eem.92 Author: eem Time: 24 December 2021, 1:00:46.796409 pm UUID: 34c4fb6f-7b3a-42fe-bfb8-7a0a1cb8f77e Ancestors: CogTools-eem.91
Make VMProfiler cope with full blocks.
=============== Diff against CogTools-eem.91 ===============
Item was changed: ----- Method: VMProfilerSymbolsManager>>computeCogCodeModule: (in category 'Cog compiled code') ----- computeCogCodeModule: cogCodeConstituents | symbols | (cogModule := VMPExecutableModuleSymbol new) name: vmModule shortName, '.', cogCodeConstituents first; shortName: cogCodeConstituents first; vmshift: 0; address: cogCodeConstituents second; size: cogCodeConstituents last - cogCodeConstituents second. symbols := (3 to: cogCodeConstituents size - 2 by: 2) collect: + [:i| "Declare methods as public; full blocks, PICs and entries as private" - [:i| "Declare methods as public; PICs and entries as private" | thing | ((thing := cogCodeConstituents at: i) isCompiledMethod ifTrue: [VMPPublicFunctionSymbol] ifFalse: [VMPPrivateFunctionSymbol]) new name: (self nameOf: thing cogCodeModule: cogCodeConstituents); address: (self extractAddress: (cogCodeConstituents at: i + 1)); cm: thing ; mcpcbcpcmap: (cogCodeConstituents at: i + 1); limit: (self extractAddress: (cogCodeConstituents at: i + 3 ifAbsent: [cogCodeConstituents last]))]. self addCogModuleSymbols: symbols!
Item was changed: ----- Method: VMProfilerSymbolsManager>>nameOf:cogCodeModule: (in category 'Constituents naming') ----- nameOf: thing cogCodeModule: cogCodeConstituents
+ thing isCompiledCode ifTrue: + [thing isCompiledMethod ifTrue: [ ^ thing methodClass name , '>>' , thing selector ]. + thing isCompiledBlock ifTrue: [ ^ '[] in ', (self nameOf: thing outerCode cogCodeModule: cogCodeConstituents) ]]. + thing class == cogCodeConstituents first class ifTrue: [ ^thing ]. "i.e. a string" + ^thing isArray - thing isCompiledMethod ifTrue: [ ^ thing methodClass name , '>>' , thing selector ]. - thing class == cogCodeConstituents first class ifTrue: [ ^thing ]. - ^ thing isArray ifTrue: [self getClosedPICLabel: (self analyzeClosedPIC: thing)] + ifFalse: ['OpenPIC ', (thing isString - ifFalse: ['OpenPIC ',(thing isString ifTrue: [ thing ] + ifFalse: [ thing printString ])]! - ifFalse: [ thing printString ])] !
vm-dev@lists.squeakfoundation.org