github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/docs/translations/zh_CN/bisect.md (about) 1 > [!WARNING] 2 > 3 > **请注意,这是社区驱动的官方 syzkaller 文档翻译。当前文档的最新版本(英文版)可在 [docs/bisect.md](/docs/bisect.md) 中找到。** 4 5 # Syz-bisect 6 7 `syz-bisect` 程序可用于对由 syzkaller 发现的崩溃进行查找责任提交(culprit commit)和修复提交(fix commit)。 8 它还可以识别触发崩溃的配置选项。 9 10 ## 使用方法 11 12 使用 `make bisect` 构建 `syz-bisect`。 13 14 在进行二分查找时,根据内核版本的不同,会使用不同的编译器。这些编译器可以在 15 [这里](https://storage.googleapis.com/syzkaller/bisect_bin.tar.gz)下载。 16 17 安装 ccache 以加速二分查找过程中的内核编译。 18 19 使用 [create-image.sh](/tools/create-image.sh) 创建用户空间 (chroot)。 20 21 根据您的环境调整以下内容并创建配置文件: 22 23 ``` 24 { 25 "bin_dir": "/home/syzkaller/bisect_bin", 26 "ccache": "/usr/bin/ccache", 27 "kernel_repo": "git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git", 28 "kernel_branch": "master", 29 "syzkaller_repo": "https://github.com/google/syzkaller", 30 "userspace": "/home/syzkaller/image/chroot", 31 "kernel_config": "/home/syzkaller/go/src/github.com/google/syzkaller/dashboard/config/linux/upstream-apparmor-kasan.config", 32 "kernel_baseline_config": "/home/syzkaller/go/src/github.com/google/syzkaller/dashboard/config/linux/upstream-apparmor-kasan-base.config", 33 "syzctl": /home/syzkaller/go/src/github.com/google/syzkaller/dashboard/config/linux/upstream.sysctl, 34 "cmdline": /home/syzkaller/go/src/github.com/google/syzkaller/dashboard/config/linux/upstream.cmdline, 35 "manager": 36 { 37 "name" : "bisect", 38 "target": "linux/amd64", 39 "http": "127.0.0.1:56741", 40 "workdir": "/home/syzkaller/workdir", 41 "kernel_obj": "/home/syzkaller/linux", 42 "image": "/home/syzkaller/workdir/image/image", 43 "sshkey": "/home/syzkaller/workdir/image/key", 44 "syzkaller": "/home/syzkaller/go/src/github.com/google/syzkaller_bisect", 45 "procs": 8, 46 "type": "qemu", 47 "kernel_src": "/syzkaller/linux", 48 "vm": { 49 "count": 4, 50 "kernel": "/home/syzkaller/linux/arch/x86/boot/bzImage", 51 "cpu": 2, 52 "mem": 2048, 53 "cmdline": "root=/dev/sda1 rw console=ttyS0 kaslr crashkernel=512M minnowboard_1:eth0::: security=none" 54 } 55 } 56 } 57 ``` 58 59 使用 `bin/syz-bisect -config vm_bisect.cfg -crash /syzkaller/workdir/crashes/03ee30ae11dfd0ddd062af26566c34a8c853698d` 进行二分查找。 60 61 `syz-bisect` 需要在指定的崩溃目录中找到 repro.cprog 或 repro.prog 文件。 62 它也会利用 repro.opts 文件,但这不是必需的。 63 64 ## 额外参数 65 66 `-syzkaller_commit` 如果您想使用特定版本的 syzkaller,请使用此参数。 67 68 `-kernel_commit` 已知可以重现崩溃的内核提交。在查找修复提交时,您会需要使用此参数。 69 70 `-fix` 如果您想对修复提交进行二分查找,请使用此参数。 71 72 ## 输出 73 74 `syz-bisect` 需要一些时间运行,但完成后会将结果输出到控制台。它还会将结果存储在指定崩溃目录的文件中: 75 76 `cause.commit` 被识别为导致崩溃的提交或文本“该崩溃已在最旧的测试版本上发生” 77 78 `fix.commit` 被识别为修复崩溃的提交或文本“该崩溃仍在 HEAD 上发生” 79 80 `cause.config` 被识别为触发崩溃的配置选项 81 82 `original.config, baseline.config, minimized.config` 在配置二分查找中使用的配置文件