Source  
Edit  
    
    
    This modules registers a signal handler that turns access violations / segfaults into a NilAccessDefect exception. To be able to catch a NilAccessDefect all you have to do is to import this module.
Tested on these OSes: Linux, Windows, OSX
    
  
  
    
  
  - proc c_abort() {.importc: "abort", header: "<stdlib.h>", noSideEffect, noreturn,
                 ...raises: [], tags: [], forbids: [].}
- 
    
    
    Source  
Edit  
  
 
 
  
  - proc c_free(p: pointer) {.importc: "free", header: "<stdlib.h>", ...raises: [],
                          tags: [], forbids: [].}
- 
    
    
    Source  
Edit  
  
 
 
  
  - proc c_printf(frmt: cstring): cint {.importc: "printf", header: "<stdio.h>",
                                     varargs, discardable, ...raises: [], tags: [],
                                     forbids: [].}
- 
    
    
    Source  
Edit  
  
 
 
  
  - proc c_signal(sign: cint; handler: CSighandlerT): CSighandlerT {.
    importc: "signal", header: "<signal.h>", discardable, ...raises: [], tags: [],
    forbids: [].}
- 
    
    
    Source  
Edit  
  
 
 
  
  - proc c_sprintf(buf, frmt: cstring): cint {.importc: "sprintf",
    header: "<stdio.h>", varargs, noSideEffect, ...raises: [], tags: [],
    forbids: [].}
- 
    
    
    Source  
Edit