报告和分析崩溃(segfaults)
所以你成功地打破了朱莉娅。 祝贺你! 这里收集的是一些一般的程序,你可以接受遇到的常见症状,当出现问题。 在跟踪分段故障或试图找出脚本运行速度比预期慢的原因时,包括这些调试步骤中的信息可以极大地帮助维护者。
如果已将您定向到此页面,请查找与您所遇到的症状最匹配的症状,并按照说明生成所请求的调试信息。 症状表:
* Bootstrap期间的Segfaults(sysimg的。jl)
* 运行脚本时的分段
* Julia启动过程中的错误
* 其他通用分段或无法达到
版本/环境信息
无论错误如何,我们都需要知道您正在运行的Julia版本。 当Julia第一次启动时,会打印出一个带有版本号和日期的标题。 请同时包括 版本信息() (从 xref:stdlib/InteractiveUtils.adoc#InteractiveUtils.versioninfo[交互式活动[标准库)在您创建的任何报表中:
引导过程中的Segfaults(sysimg的。jl)
向着 使 构建Julia的过程是出现问题的常见症状,而Julia正在准备代码库。 基地/ 文件夹。 许多因素可能会导致这个过程意外死亡,但是它往往不是由于Julia的C代码部分中的错误,因此通常必须在 gdb,gdb. 明确地说:
创建Julia的调试版本:
$cd<julia_root> ⑤进行调试
请注意,此过程可能会失败,并出现与正常情况相同的错误 使 咒语,但是这将创建一个调试可执行文件,将提供 gdb,gdb 获得精确回溯所需的调试符号。 接下来,在 gdb,gdb:
$cd底座/ $gdb-x。./contrib/debug_bootstrap。gdb,gdb
这将开始 gdb,gdb,尝试使用Julia的调试构建运行引导过程,并打印出一个backtrace,如果(当)它分段。 你可能需要打 <进入> 几次以获得完整的后防线。 创建一个https://gist.github.com[要旨]与后退, 版本信息,以及你能想到的任何其他相关信息,并打开一个新的https://github.com/JuliaLang/julia/issues?q=is%3Aopen Github上有一个链接到要点的[问题]。
运行脚本时的Segfaults
该过程非常类似于 Bootstrap期间的Segfaults(sysimg的。jl). 创建Julia的调试版本,并在已调试的Julia进程中运行脚本:
$cd<julia_root> ⑤进行调试 $gdb--args usr/bin/julia-debug<path_to_your_script>
请注意 gdb,gdb 会坐在那里,等待指示。 类型 r 运行该过程,以及 英国电信 在分段后生成回溯:
(gdb) r Starting program: /home/sabae/src/julia/usr/bin/julia-debug ./test.jl ... (gdb) bt
创建一个https://gist.github.com[要旨]与后退, 版本信息,以及你能想到的任何其他相关信息,并打开一个新的https://github.com/JuliaLang/julia/issues?q=is%3Aopen Github上有一个链接到要点的[问题]。
Julia启动过程中的错误
在Julia的启动过程中偶尔会出现错误(特别是在使用二进制发行版时,而不是从源代码编译时),如下所示:
$ julia
exec: error -5
这些错误通常表明某些东西在启动阶段的早期就没有正确加载,我们在确定出了什么问题时最好的办法是使用外部工具来审计 朱莉娅 过程:
*在Linux上,使用 斯特拉斯:
$strace朱莉娅
*在OSX上,使用 德特鲁斯:
$dtruss-f朱莉娅
创建一个https://gist.github.com[要点]与 斯特拉斯/ 德特鲁斯 输出,该 版本信息,以及任何其他相关信息并打开一个新的https://github.com/JuliaLang/julia/issues?q=is%3Aopen Github上有一个链接到要点的[问题]。
其他通用分段或无法达到的
如其他地方所述, 朱莉娅 具有良好的集成性 存款准备金率 用于生成跟踪;这包括在Linux上自动运行的能力 朱莉娅 下 存款准备金率 并分享崩溃后的痕迹。 这在调试此类崩溃时非常有用,并且在向JuliaLang/julia回购报告崩溃问题时强烈鼓励。 要运行 朱莉娅 下 存款准备金率 自动地,做:
julia --bug-report=rr
生成 存款准备金率 跟踪本地,但不共享,你可以这样做:
julia --bug-report=rr-local
请注意,这仅适用于Linux。 博客文章https://julialang.org/blog/2020/05/rr/[时间旅行错误报告]有更多的细节。