Reporting and analyzing crashes (segfaults)

    If you’ve been directed to this page, find the symptom that best matches what you’re experiencing and follow the instructions to generate the debugging information requested. Table of symptoms:

    No matter the error, we will always need to know what version of Julia you are running. When Julia first starts up, a header is printed out with a version number and date. Please also include the output of versioninfo() (exported from the InteractiveUtils standard library) in any report you create:

    Segfaults toward the end of the make process of building Julia are a common symptom of something going wrong while Julia is preparsing the corpus of code in the base/ folder. Many factors can contribute toward this process dying unexpectedly, however it is as often as not due to an error in the C-code portion of Julia, and as such must typically be debugged with a debug build inside of gdb. Explicitly:

    Create a debug build of Julia:

    1. $ cd <julia_root>
    2. $ make debug

    This will start , attempt to run the bootstrap process using the debug build of Julia, and print out a backtrace if (when) it segfaults. You may need to hit <enter> a few times to get the full backtrace. Create a with the backtrace, the version info, and any other pertinent information you can think of and open a new on Github with a link to the gist.

    The procedure is very similar to Segfaults during bootstrap (sysimg.jl)-1). Create a debug build of Julia, and run your script inside of a debugged Julia process:

    1. $ cd <julia_root>
    2. $ gdb --args usr/bin/julia-debug <path_to_your_script>

    Note that gdb will sit there, waiting for instructions. Type r to run the process, and bt to generate a backtrace once it segfaults:

    Create a with the backtrace, the version info, and any other pertinent information you can think of and open a new on Github with a link to the gist.

    1. $ julia
    2. exec: error -5

    These errors typically indicate something is not getting loaded properly very early on in the bootup phase, and our best bet in determining what’s going wrong is to use external tools to audit the disk activity of the process:

    • On Linux, use strace:

    • On OSX, use dtruss:

      Create a gist with the strace/ dtruss output, the , and any other pertinent information and open a new issue on Github with a link to the gist.

      • <julia_root> refers to the root directory of the Julia source tree; e.g. it should contain folders such as base, deps, src, test, etc…..