/****************************************************************************\ * attach.h - definitions needed for TotalView interactions ***************************************************************************** * This file was supplied by James Cownie and provides * information required to interface Slurm to the TotalView debugger from * the Etnus Corporation. For more information about TotalView, see * http://www.etnus.com/ \*****************************************************************************/ /* This file contains support for bringing processes up stopped, so that * a debugger can attach to them (done for TotalView) */ /* Update log * * Nov 27 1996 jcownie@dolphinics.com: Added the executable_name to MPIR_PROCDESC */ #ifndef _ATTACH_INCLUDE #define _ATTACH_INCLUDE /***************************************************************************** * DEBUGGING SUPPORT * *****************************************************************************/ /* A little struct to hold the target processor name and pid for * each process which forms part of the MPI program. * We may need to think more about this once we have dynamic processes... * * DO NOT change the name of this structure or its fields. The debugger knows * them, and will be confused if you change them. */ typedef struct { char * host_name; /* Something we can pass to inet_addr */ char * executable_name; /* The name of the image */ int pid; /* The pid of the process */ } MPIR_PROCDESC; /* Array of procdescs for debugging purposes */ extern MPIR_PROCDESC *MPIR_proctable; extern int MPIR_proctable_size; /* Various global variables which a debugger can use for * 1) finding out what the state of the program is at * the time the magic breakpoint is hit. * 2) inform the process that it has been attached to and is * now free to run. */ extern volatile int MPIR_debug_state; extern volatile int MPIR_debug_gate; extern int MPIR_being_debugged; /* Cause extra info on internal state * to be maintained */ /* Values for the debug_state, this seems to be all we need at the moment * but that may change... */ #define MPIR_DEBUG_SPAWNED 1 #define MPIR_DEBUG_ABORTING 2 /* Slurm specific declarations */ extern int MPIR_i_am_starter; extern int MPIR_acquired_pre_main; extern void MPIR_Breakpoint(void); /* Value for totalview %J expansion in bulk launch string */ extern char *totalview_jobid; extern char *totalview_stepid; #endif