Skip to main content

退出代码

退出代码表示 CodeQL CLI 运行命令后的状态。

谁可以使用此功能?

CodeQL 可用于以下存储库类型:

关于退出代码

CodeQL CLI 将其运行的每个命令的状态报告为退出代码。 此退出代码为后续命令或依赖于 CodeQL CLI 的其他工具提供信息。

0

成功,正常终止。

1

命令已成功确定问题的答案为“否”。

此退出代码仅由几个命令使用,例如 test rundataset checkquery formatresolve extractor。 有关更多详细信息,请参阅这些命令对应的文档。

2

出现错误。

CLI 将人类可读的错误消息写入 stderr。 这包括提取程序因内部错误而失败的情况,因为 codeql 驱动程序无法区分提取程序行为中的内部错误和面向用户的错误。

3

启动程序找不到 CodeQL 安装目录。

在这种情况下,启动程序根本无法启动 CodeQL CLI 的 Java 代码。 仅当 CodeQL 安装出现严重错误时,才会发生这种情况。

32

提取程序在运行 database createdatabase finalize 时找不到任何要分析的代码。

33

一个或多个查询评估超时。

某些并行计算的查询可能没有超时。会照常生成这些查询的结果。

98

已显式取消评估。

99

CodeQL CLI 内存不足。

这不一定意味着已使用计算机的所有物理 RAM。 如果不使用 --ram 选项显式设置限制,JVM 将在启动时确定默认限制。

100

发生严重内部错误。

这应被视为 bug。 CLI 通常会将简短的错误说明写入 stderr。 如果可重现 bug,那么使用 --logdir 并将日志文件发送到 bug 报告中的 GitHub 将很有帮助。

其他

在运行 codeql的 JVM 中出现非常严重的问题时,它可能会返回自己选择的非零退出代码。 仅当 CodeQL 安装出现严重错误,或者运行 CodeQL 进程的主机系统存在内存问题时,才会发生这种情况。 例如,Unix 系统可能会返回退出代码 137,指示内核已终止 CodeQL 启动的进程。 要解决此问题,一种方法是修改 codeql database analyze 步骤的 –ram= 标志并重新运行工作流。