![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: When issuing a SYS$CANCEL prior to issuing a SYS$QIO to close down a TCP/IP connection I get a access violation ?? Sequence of events 1 - Connect 2 - Issue a IO$_READVBLK 3 - sys$cancel 4 - IO$_SETMODE|IO$M_CTRL|IO$M_SHUTDOWN At stage 4 the access violation occurs. If I execute steps 1,2 & 4 (skipping 3) it works !! Please advise !!! The Answer is : The failing Virtual Address and the program counter (PC) for the Access Violation (ACCVIO) error -- when interpreted as ASCII text -- reads as 'nnection'. This indicates the potential for severe damage to the call stack (stack corruptions) within the context of the application. This corruption could obviously be the primary cause of the error, or it could easily be secondary to some other error within the run-time environment. The identification of the specific cause of this and of most other ACCVIO errors will require application-level debugging, of course. The OpenVMS Wizard strongly encourages reading the available debugging and traceback topics here in Ask The Wizard -- such as topics (4129) and (7552) -- as well as the various topics on the many potential causes of the ACCVIO error itself. For virtual memory debugging and for memory heap corruptions -- and for details on a debugging technique known colloquially as "fenceposts" -- please see topic (3257). For basic information on common coding bugs and for pointers to related topics, please start with topic (1661). Also obviously of some interest here will be the documentation on the OpenVMS Debugger utility; the debugger is an invaluable tool for finding and for resolving run-time errors. If you wish to request formal assistance in debugging this or other application code, please contact the services organization directly. For assistance with and for information on patches (if any) available for the TCPware product, please contact the TCPware product support organization.
|