HP OpenVMS Systemsask the wizard |
The Question is: Compaq C++ V6.2-016 for OpenVMS Alpha V7.2-1 (pthread about the same version) DS10 A multithreaded application does for some reason fail during the startup. Currently it fails with ROPRAND at about the same number of instructions in the code If instuctions are subtracted or added, it fails in a diffrent location. Please see two exampl es below. Note after migrating from mixed CMA /pthread interface to a pure pthread interface, some other pecularities occur. For instance, for a while it crached with UNACVIO when translating logical names, but after changing signed to unsigned variables, it were OK. I would assume that the code for some reason get corrupted at startup, but a diff with the previous implementation does not reveal anything obvious. %SYSTEM-F-ROPRAND, reserved operand fault at PC=00000000003A1630, PS=0000001B break on unhandled exception at SHARE$PTHREAD$RTL+259632 in THREAD 1 %DEBUG-I-SOURCESCOPE, Source lines not available for .0\%PC Displaying source in a caller of the current routine 63044: pthread_delay_np( &delayxxx ); DBG> exit %SYSTEM-F-ROPRAND, reserved operand fault at PC=00000000003A1630, PS=0000001B break on unhandled exception at SHARE$PTHREAD$RTL+259632 in THREAD 1 %DEBUG-I-SOURCESCOPE, Source lines not available for .0\%PC Displaying source in a caller of the current routine 63043: qioTab[row].qioReady = FALSE; DBG> The Answer is : If the OpenVMS Wizard were going to guess, the guess would involve the plethora of potential programming problems posited in topic (1661). Finding the problem can involve use of the debugger or other techniques, moving forward through the application startup until the window where the corruption occurs is located, then narrowing the window. Various of the programming problems from topic (1661) might be located via a desk-check of the code. In addition to topic (1661), topic (6099) may also be of interest, as it covers threading and ASTs.
|