Last commit for debug.h: 0d9f0800be49834ca3f9c51a13da668fcc0e397a

Serial md code

Ramses van Zon [2016-09-27 13:53:05]
Serial md code
#ifndef DEBUG_H
#define DEBUG_H

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>

#ifndef NDEBUG
 #ifndef ATTACHCHECKUBUNTU
  #define ATTACHCHECKUBUNTU {char blockingfile[]="/proc/sys/kernel/yama/ptrace_scope"; FILE* f=fopen(blockingfile,"r"); if (f) { char c=getc(f); if (c=='1') fprintf(stderr,"sudo sh -c 'echo 0 > %s'\n",blockingfile); fclose(f);} }
 #endif
 #ifndef EMACSDEBUG
  #define EMACSDEBUG {ATTACHCHECKUBUNTU; int i=0;fprintf(stderr,"\nemacs -q -fn 6x12 -T rank%d --eval '(gdb \"gdb --annotate=1 -q -i=mi -ex finish -ex finish -ex \\\"set var i=1\\\" -ex next ./pardy -p %d\")'&\n",global_rank,getpid());while(0==i)sleep(5);}
 #endif
 #ifndef XTERMDEBUG
  #define XTERMDEBUG {ATTACHCHECKUBUNTU; int i=0;fprintf(stderr,"\nxterm -fn 6x12 -geometry 100x25 -T rank%d -e 'gdb -tui -q -ex finish -ex finish -ex \"set var i=1\" -ex next ./pardy -p %d'&\n",global_rank,getpid());while(0==i)sleep(5);}
 #endif
#else
 #ifndef EMACSDEBUG
  #define EMACSDEBUG do{;}while(0)
 #endif
 #ifndef XTERMDEBUG
  #define XTERMDEBUG do{;}while(0)
 #endif
#endif

#define ENTERDEBUGGER                                               \
    if (argc>1 && strncmp(argv[1],"-e", 3)==0) {                    \
        argv++; argc--; EMACSDEBUG;                                 \
    } else if (argc>1 && strncmp(argv[1],"-x",3)==0) {              \
        argv++; argc--; XTERMDEBUG;                                 \
    }

#endif
ViewGit