关于退出代码
CodeQL CLI 将它运行的每个命令的状态报告为退出代码。该退出代码为后续命令或依赖 CodeQL CLI 的其他工具提供信息。
0
成功,正常结束。
1
该命令成功确定您问题的答案为“否”。
此退出代码仅被少数命令使用,例如 test run、dataset check、query format和resolve extractor。欲了解更多细节,请参阅这些命令的文档。
2
出现错误。
CLI 会将可读的错误信息写入 stderr。这包括提取器因内部错误而失败的情况,因为 codeql 驱动无法区分提取器行为中的内部错误和面向用户的错误。
3
启动器无法找到 CodeQL 安装目录。
在这种情况下,启动器根本无法启动 CodeQL CLI 的 Java 代码。这仅会在 CodeQL 安装出现严重问题时发生。
32
在运行 database create 或 database finalize 时,提取器未找到任何可分析的代码。
33
一个或多个查询评估超时。
有可能一些并行评估的查询没有超时。这些查询的结果会照常生成。
98
评估被明确取消。
99
CodeQL CLI 内存耗尽。
这并不一定意味着机器的全部物理内存已被使用。如果未使用 --ram 选项显式设定限制,JVM 会在启动时决定默认限制。
100
发生致命的内部错误。
这应被视为一个缺陷。CLI 通常会将简要的错误描述写入 stderr。如果您能够复现该缺陷,使用 --logdir 并在提交 bug 报告时将日志文件发送至 GitHub 将有助于诊断。
其他
如果在运行 codeql 的 JVM 中出现极其严重的问题,它可能会返回自行选择的非零退出代码。这仅会在 CodeQL 安装出现严重故障,或运行 CodeQL 进程的主机系统出现内存问题时发生。例如,Unix 系统可能返回退出代码 137,表示内核已杀死 CodeQL 启动的进程。解决此问题的一种方法是修改您的 –ram= 标志用于 codeql database analyze 步骤,然后重新运行工作流。