menmenamen 2024-02-06 16:00 采纳率: 0%
浏览 26
已结题

oss-fuzz-gen求完整使用教程

谷歌新出的模糊测试 https://github.com/google/oss-fuzz-gen,有人知道怎么用吗,用tinyxml2测试时遇到问题,谁有完整测试和使用demo

results/output-tinyxml2-tinyxml2-xmldocument-print/raw_targets/01.cpp
 results/output-tinyxml2-tinyxml2-xmldocument-print/raw_targets/02.cpp
Building tinyxml2-tinyxml2-xmldocument-print-01 with address
Building tinyxml2-tinyxml2-xmldocument-print-02 with address
Failed to build image for tinyxml2-tinyxml2-xmldocument-print-01
Failed to build image for tinyxml2-tinyxml2-xmldocument-print-02
Failed to parse error message from /Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/results/output-tinyxml2-tinyxml2-xmldocument-print/logs/build/01.cpp-F0.log.
Fixing /Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/results/output-tinyxml2-tinyxml2-xmldocument-print/fixed_targets/01.cpp with gpt-3.5-turbo, attempt 1.
Failed to parse error message from /Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/results/output-tinyxml2-tinyxml2-xmldocument-print/logs/build/02.cpp-F0.log.
Fixing /Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/results/output-tinyxml2-tinyxml2-xmldocument-print/fixed_targets/02.cpp with gpt-3.5-turbo, attempt 1.
Traceback (most recent call last):
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/experiment/evaluator.py", line 172, in check_target
    return self.do_check_target(ai_binary, target_path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/experiment/evaluator.py", line 228, in do_check_target
    code_fixer.llm_fix(ai_binary, target_path, llm_fix_count,
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/llm_toolkit/code_fixer.py", line 287, in llm_fix
    apply_llm_fix(ai_binary,
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/llm_toolkit/code_fixer.py", line 341, in apply_llm_fix
    fixer_model.prompt_path = fixer_model.prepare_fix_prompt(
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/llm_toolkit/models.py", line 370, in prepare_fix_prompt
    return self.prepare_prompt(prompt_path, priming, problem)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/llm_toolkit/models.py", line 386, in prepare_prompt
    self._add_examples(example_pair, final_problem, project_example_content)
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/llm_toolkit/models.py", line 245, in _add_examples
    prompt_size = self._estimate_token_num(self._prompt)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/llm_toolkit/models.py", line 468, in _estimate_token_num
    num_tokens += len(encoder.encode(value))
                      ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/.venv/lib/python3.11/site-packages/tiktoken/core.py", line 116, in encode
    if match := _special_token_regex(disallowed_special).search(text):
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • 写回答

14条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-06 16:01
    关注
    获得0.60元问题酬金

    引自免费微信小程序:皆我百晓生

    oss-fuzz-gen 是谷歌推出的一个工具,用于生成针对开源项目的模糊测试用例。根据您提供的错误信息,您在尝试使用 oss-fuzz-gen 对 tinyxml2 库中的 xmldocument-print 功能进行模糊测试时遇到了问题。

    该工具集成了 AI 模型来修复可能存在的构建失败问题,从您的日志片段来看,似乎在构建基于tinyxml2的测试目标时失败了,并且在尝试通过AI模型(gpt-3.5-turbo)修复构建错误时也未能成功。

    由于这里没有提供详细的教程或完整的代码示例,我将给出一个简化的 oss-fuzz-gen 使用流程,但请注意,实际操作中需要您熟悉 Docker、Git 和 C/C++ 编译环境:

    1. 安装依赖

      • 确保您已经安装了Docker和Git。
      • 安装Python 3.x并创建虚拟环境(venv)以管理项目依赖。
      • 进入 oss-fuzz-gen 项目目录并激活虚拟环境,然后运行 pip install -r requirements.txt 来安装所需的Python包。
    2. 准备项目源码

      • 克隆包含 tinyxml2 的 Git 仓库到本地。
    3. 配置 oss-fuzz-gen

      • 在 oss-fuzz-gen 工具中,通常需要为要测试的项目创建一个配置文件(如 .oss-fuzz.yaml),指定库的编译选项、头文件路径、源码路径等。
    4. 运行 oss-fuzz-gen

      • 执行命令行工具,指定要针对的目标函数(例如 xmldocument-print)。假设oss-fuzz-gen提供了一个类似于oss-fuzz-gen run <target>的命令。
    5. 处理构建错误

      • 如果构建过程遇到问题(如您所经历的那样),oss-fuzz-gen 尝试自动修复,但是在这个案例中,它看起来并未成功。您需要手动检查构建日志(如 /Users/faithchen-imac/Documents/gitCode/temp/oss-fuzz-gen/results/output-tinyxml2-tinyxml2-xmldocument-print/logs/build/*.log),找出具体编译错误原因并解决。
    6. 自定义修复或报告问题

      • 如果AI修复功能无效,您可能需要自己修改生成的测试用例或者向 oss-fuzz-gen 项目提交 issue 描述问题。

    由于oss-fuzz-gen的具体使用方式可能会随着项目的更新而有所变化,请务必查阅其GitHub仓库上的官方文档和README.md文件获取最新的使用说明和示例。

    oss-fuzz-gen GitHub仓库

    请根据实际情况调整上述步骤,并参考oss-fuzz-gen的实际文档与工具接口来解决问题。对于特定的错误提示,可能需要查看相关代码文件以理解错误产生的上下文。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月14日
  • 创建了问题 2月6日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见