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