Although the application owns the aspects, the values of these aspects are defined by UlcDebugger and can be different in every image. You set these as follows:
_PRAGMA_UlcExampleDebugAspectConstants "%%PRAGMA DECLARE (name: UlcExampleDebugAspectConstants isPool: true) (pool: UlcExampleDebugAspectConstants declarations: ( (name: UlcCustomDebugAspectOne isConstant: false ) (name: UlcCustomDebugAspectTwo isConstant: false ) )) "
Always set the isConstant flag to false. If you do not, the pool entry is marked read-only, and the value defined by UlcDebugger cannot be assigned (step 2).
SomeApplication class>>#loaded UlcExampleDebugAspectConstants::UlcCustomDebugAspectOne := UlcDebugger nextAspectIdentifier. UlcExampleDebugAspectConstants::UlcCustomDebugAspectTwo := UlcDebugger nextAspectIdentifier. UlcDebugger addAspect: UlcExampleDebugAspectConstants::UlcCustomDebugAspectOne text: 'name of the first aspect as shown in the selection prompter'. UlcDebugger addAspect: UlcExampleDebugAspectConstants::UlcCustomDebugAspectTwo text: 'name of the second aspect as shown in the selection prompter'.
SomeObject>>#someMethod ... UlcSystem default ulcDebug: UlcCustomDebugAspectTwo print: ['some text shown in the trace']. ...
SomeApplication class>>#removing UlcDebugger removeAspect: UlcExampleDebugAspectConstants::UlcCustomDebugAspectOne removeAspect: UlcExampleDebugAspectConstants::UlcCustomDebugAspectTwo