
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
SeaHorn是一款基于LLVM的开源形式化验证框架,专为C程序设计,旨在通过静态分析技术检测代码中的潜在错误。该框架集成了抽象解释、符号执行等多种验证技术,能够自动化验证程序的内存安全性(如缓冲区溢出、空指针解引用)、断言正确性、数据竞争等关键属性,广泛应用于提高软件可靠性和安全性的开发流程中。
assert()语句的正确性,确保断言条件在所有执行路径下均成立。example.c)。通过Docker Hub拉取官方镜像(假设镜像名称为seahorn/seahorn,实际使用时请以官方最新镜像为准):
bashdocker pull docker.xuanyuan.run/seahorn/seahorn
1. 验证单个C文件
将本地代码目录挂载到容器中,执行验证命令:
bash# 假设待验证文件为当前目录下的 example.c docker run --rm -v $(pwd):/workspace docker.xuanyuan.run/seahorn/seahorn \ sh -c "cd /workspace && sea horn example.c"
--rm:容器退出后自动删除。-v $(pwd):/workspace:将本地当前目录挂载到容器内/workspace目录,使容器可访问待验证代码。sea horn example.c:SeaHorn的核心验证命令,对example.c进行默认配置的安全验证。2. 指定验证属性
通过命令行参数自定义验证目标(如仅检测内存安全错误):
bashdocker run --rm -v $(pwd):/workspace docker.xuanyuan.run/seahorn/seahorn \ sh -c "cd /workspace && sea horn --mem example.c"
--mem:仅启用内存安全验证(检测缓冲区溢出、空指针解引用等)。3. 生成详细报告
添加--report参数生成HTML格式的验证报告:
bashdocker run --rm -v $(pwd):/workspace docker.xuanyuan.run/seahorn/seahorn \ sh -c "cd /workspace && sea horn --report example.c"
报告将保存至当前目录下的seahorn-report/文件夹,包含错误位置、调用栈、执行路径等详细信息。
| 参数 | 说明 | 示例 |
|---|---|---|
--horn | 使用默认配置进行全面验证(推荐) | sea horn example.c |
--mem | 仅验证内存安全属性 | sea horn --mem example.c |
--assert | 仅验证assert()语句正确性 | sea horn --assert example.c |
--report | 生成HTML格式验证报告 | sea horn --report example.c |
--debug | 启用调试模式,输出详细执行日志 | sea horn --debug example.c |
/,建议通过-v挂载本地目录,避免文件权限问题。clang等编译器生成LLVM IR,再使用sea horn验证IR文件。--timeout N(单位:秒)设置验证超时时间,平衡效率与精度。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务