The following describes how to trigger a bugcheck…
By default, a system bugcheck can only be triggered in executive or kernel mode. Outer-mode bugchecks will trigger application exit, but will only trigger a system crash if the OpenVMS system parameter BUGCHEKFATAL is set to promote non-privileged bugcheck requests into system bugchecks.
In a C application, an OpenVMS Alpha routine that calls the bug_check macro looks like this:
#define __NEW_STARLET #include <ssdef.h> #include <starlet.h> #include <stdlib.h> #include <vms_macros.h> /* from sys$lib_c.tlb */ int ByeByeBugCheck() { bug_check( INCONSTATE, FATAL, COLD ); return SSC Tips: Generating a Bugcheck; Triggering a System CrashSubmitted by Hoff on August 15, 2007 - 00:39.BUGCHECK; } main() { unsigned int ArghList[] = { 0 }; int RetStat; RetStat = sys$cmkrnl( ByeByeBugCheck, ArghList); exit( EXIT_FAILURE ); }The following describes how to trigger a bugcheck…
By default, a system bugcheck can only be triggered in executive or kernel mode. Outer-mode bugchecks will trigger application exit, but will only trigger a system crash if the OpenVMS system parameter BUGCHEKFATAL is set to promote non-privileged bugcheck requests into system bugchecks.
In a C application, an OpenVMS Alpha routine that calls the bug_check macro looks like this:
___FCKpd___0The CC compilation command for the above source code module is CC module_name.c + SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY.
CMKRNL privilege is required for the sys$cmkrnl call.
Both OpenVMS Alpha and OpenVMS I64 also support the following construct:
#include <pal_builtins.h>
void __PAL_BUGCHK( bugcheck_code );
This PAL call replaces the bug_check call shown above, and you'll need to add the required include file.The __PAL_BUGCHK call is an SRM firmware PAL call on OpenVMS Alpha, and translated into a compiler break directive available within the OpenVMS I64 C compiler.
The CC compilation command for the above source code module is CC module_name.c + SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY.
CMKRNL privilege is required for the sys$cmkrnl call.
Both OpenVMS Alpha and OpenVMS I64 also support the following construct:#include <pal_builtins.h>
void __PAL_BUGCHK( bugcheck_code );
This PAL call replaces the bug_check call shown above, and you'll need to add the required include file.
The __PAL_BUGCHK call is an SRM firmware PAL call on OpenVMS Alpha, and translated into a compiler break directive available within the OpenVMS I64 C compiler.