![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I was looking for a way to do the equivalent of a $SET PROCESS/NODUMP from inside a C executable. ie, dithering w/ PHD$x_IMGDMP. Are there any un'doc'ed, unsupported, can-go-away-at-any-time routines that could be called from user-mode to do this safely? the end-aim was to get a exe that writes process dumps at most only once; (the cond handlers within dismiss most exceptions, allowing the exe to slog on ...) thx - The Answer is : It's kernel-mode time... As of this writing, you will have to use a sys$cmkrnl call to a small user-written routine which sets (or clears) the bit phd$v_imgdmp in the longword ctl$gl_phd. The OpenVMS Wizard would encourage debugging this kernel-mode code on a standalone system, for what should be obvious reasons. Alternatively, you might want to leave the image dumps disabled by default, and generate them only when you require it. For instance, you can request the generation of an image dump via the (supported) SS$_IMGDMP signal: lib$signal( SS$_IMGDMP ) ; This approach would involve a condition handler that handles the expected signals, then requests an image dump via signal during any unhandled conditions. And this approach avoids kernel-mode code.
|