
Jump to the invalid address stated on the next line
   ...
   by 0x........: main (badjump.c:17)
 Address 0x........ is not stack'd, malloc'd or (recently) free'd


Process terminating with default action of signal 11 (SIGSEGV)
 Access not within mapped region at address 0x........
   ...
   by 0x........: main (badjump.c:17)
 If you believe this happened as a result of a stack
 overflow in your program's main thread (unlikely but
 possible), you can try to increase the size of the
 main thread stack using the --main-stacksize= flag.
 The main thread stack size used in this run was ....

HEAP SUMMARY:
    in use at exit: ... bytes in ... blocks
  total heap usage: ... allocs, ... frees, ... bytes allocated

For a detailed leak analysis, rerun with: --leak-check=full

For counts of detected and suppressed errors, rerun with: -v
ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
