Article 4859 of vmsnet.internals: Hello fellow Macro32ers, This list has been too dormant for too long so, here is a little food for thought. It concerns the behavior of the OpenVMS Alpha linker and I have found this to be a bit of a nuisance on more than one occasion. If you haven't seen this before, the OpenVMS Alpha linker uses the share- able image SYS$SSISHR.EXE when /DEBUG is specified to supply "feign" sys- tem service "jackets". Therefore, if you load the address of some system service (say SYS$QIO) into a register, that address will vary and depends upon the method used to link the image. Below is a small ditty I've written to demonstrate this behavior. Test it out for yourself. Test 1: $ MACRO $ LINKK $ RUN Test 2: $ MACRO $ LINKK/DEBUG $ RUN/NODEB Has anyone found (or is there) a workaround for this so that I can use the OpenVMS symbolic debugger to step through the program and see the "actual" values I'd expect to see at run-time when the image has been linked without /DEBUG? ;++ ; Copyright 1997 Brian Schenkenberger and TMESIS ALL RIGHTS RESERVED. ; If I've ever worked for you then, you're required to obtain permission, in ; writing, to copy or use this software in any form. (Isn't this sad?) ;-- .TITLE "SSI :(" ; ALPHA ONLY CODE SNIPPET. .IDENT /V01.00 bjs/ ; $PDSCDEF ; OpenVMS Alpha procedure descriptor definitions .PSECT DATA,WRT,NOEXE,5 RES: .ASCID /12345678/ .PSECT CODE,NOWRT,EXE,5 .ENTRY GO,0 MOVAL SYS$QIO,R0 ; get PDSC address of system service PUSHL R0 ; save the address across output rtn MOVAB (SP),R1 ; get address of value for formatting PUSHAB RES ; get descriptor address for result PUSHL R1 ; push address of value on the stack CALLS #2,G^OTS$CVT_L_TZ ; convert it to readable hex format PUSHAB RES ; push descriptor address of result CALLS #1,G^LIB$PUT_OUTPUT ; output it so I can see it POPL R0 ; recover address of S'S's PDSC MOVL PDSC$Q_ENTRY(R0),R0 ; get address of S'S's transfer rtn PUSHL R0 MOVAB (SP),R1 ; S.O.S as before, read it above. PUSHAB RES PUSHL R1 CALLS #2,G^OTS$CVT_L_TZ POPL R0 ; clear the stack PUSHAB RES CALLS #1,G^LIB$PUT_OUTPUT RET .END GO VAXman- VAXman@TMESIS.COM Behold, he travaileth with iniquity, and hath conceived mischief, and brought forth falsehood. He made a pit, and digged it, and is fallen into the ditch which he made. His mischief shall return upon his own head, and his violent dealing shall come down upon his own pate. -- Psalms 7:14-16 --