aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(二)
使用
afl-c++
871. -mno-abicalls
禁用 SVR4 样式的位置无关代码(仅限 Mips)
872. -mno-amdgpu-precise-memory-op
禁用精确内存模式(仅限 AMDGPU)
873. -mno-apx-features=<value>
禁用 APX 功能
874. -mno-bti-at-return-twice
不要在 setjmp 或其他 return-twice 结构后添加 BTI 指令(仅限 Arm/AArch64)
875. -mno-constructor-aliases
尽可能禁用将完整的构造函数和析构函数作为别名发出
876. -mno-crc
禁止使用 CRC 指令(仅限 Mips)
877. -mno-cumode
指定 WGP 波前执行模式(仅限 AMDGPU)
878. -mno-daz-ftz
程序启动时,不要全局设置浮点控制寄存器中的非正规数为零 (DAZ) 和清零 (FTZ) 位
879. -mno-embedded-data
如果常量满足 -G <size> 阈值 (MIPS),则不要将其放置在 .rodata 段中,而要将其放置在 .sdata 段中。
880. -mno-execute-only
允许生成对代码段的数据访问(仅限 ARM)
881. -mno-extern-sdata
如果外部定义的数据满足 -G <size> 阈值 (MIPS),则不要将其假定为位于小数据段中。
882. -mno-fix-cmse-cve-2021-35465
不处理 VLLDM 勘误 CVE-2021-35465(仅限 ARM)
afl-cc -o target target.c -mno-abicalls -mno-amdgpu-precise-memory-op -mno-apx-features=test -mno-bti-at-return-twice -mno-constructor-aliases -mno-crc -mno-cumode -mno-daz-ftz -mno-embedded-data -mno-execute-only -mno-extern-sdata -mno-fix-cmse-cve-2021-35465
883. -mno-fix-cortex-a53-835769
不解决 Cortex-A53 勘误表 835769(仅限 AArch64)
884. -mno-fix-cortex-a57-aes-1742098
不解决 Cortex-A57 勘误表 1742098(仅限 ARM)
885. -mno-fix-cortex-a72-aes-1655431
不解决 Cortex-A72 勘误表 1655431(仅限 ARM)
886. -mno-fmv
禁用函数多版本控制
887. -mno-forced-sw-shadow-stack
启用影子堆栈时不强制使用软件影子堆栈
888. -mno-gather
禁用自动矢量化中收集指令的生成(仅限 x86)
889. -mno-global-merge
禁用全局函数合并
890. -mno-gpopt
不使用 GP 相对访问已知位于小型数据段 (MIPS) 的符号
891. -mno-hvx-ieee-fp
禁用 Hexagon HVX IEEE 浮点
892. -mno-hvx-qfloat
禁用 Hexagon HVX QFloat 指令
893. -mno-hvx
禁用 Hexagon 矢量扩展
894. -mno-implicit-float
不生成隐式浮点或矢量指令
895. -mno-incremental-linker-compatible
(integrated-as) 生成无法与增量链接器一起使用的目标文件
896. -mno-lasx
禁用龙芯高级 SIMD 扩展 (LASX)。
afl-cc -o target target.c -mno-fix-cortex-a53-835769 -mno-fix-cortex-a57-aes-1742098 -mno-fix-cortex-a72-aes-1655431 -mno-fmv -mno-forced-sw-shadow-stack -mno-gather -mno-global-merge -mno-gpopt -mno-hvx-ieee-fp -mno-hvx-qfloat -mno-hvx -mno-implicit-float -mno-incremental-linker-compatible -mno-lasx
897. -mno-local-sdata
不将 -G 行为扩展至对象本地数据 (MIPS)
898. -mno-long-calls
恢复不生成长调用的默认行为
899. -mno-lsx
禁用龙芯 SIMD 扩展 (LSX)。
900. -mno-lvi-cfi
禁用负载值注入 (LVI) 的控制流缓解措施
901. -mno-lvi-hardening
禁用负载值注入 (LVI) 的缓解措施
902. -mno-madd4
禁用 4 操作数 madd.s、madd.d 及相关指令的生成。
903. -mno-memops
禁用 memop 指令生成
904. -mno-movt
禁止使用 movt/movw 对(仅限 ARM)
905. -mno-ms-bitfields
不将默认结构布局设置为与 Microsoft 编译器标准兼容
906. -mno-msa
禁用 MSA ASE(仅限 MIPS)
907. -mno-mt
禁用 MT ASE(仅限 MIPS)
908. -mno-neg-immediates
禁止将带有负立即数的指令转换为其取反或取反。
909. -mno-nvj
禁用生成新值跳转指令
910. -mno-nvs
禁用生成新值存储指令
911. -mno-outline-atomics
不生成对线外原子操作的本地调用
912. -mno-outline
禁用函数大纲(仅限 AArch64)
913. -mno-packets
禁用生成指令包
914. -mno-pic-data-is-text-relative
不假设数据段相对于文本段
afl-cc -o target target.c -mno-local-sdata -mno-long-calls -mno-lsx -mno-lvi-cfi -mno-lvi-hardening -mno-madd4 -mno-memops -mno-movt -mno-ms-bitfields -mno-msa -mno-mt -mno-neg-immediates -mno-nvj -mno-nvs -mno-outline-atomics -mno-outline -mno-packets -mno-pic-data-is-text-relative
915. -mno-regnames
编写汇编输出时仅使用寄存器编号
916. -mno-relax
禁用链接器放宽
917. -mno-restrict-it
允许生成复杂的 IT 块
918. -mno-save-restore
禁用使用库调用进行保存和恢复
919. -mno-scalar-strict-align
允许标量内存访问不对齐(仅限 RISC-V)
920. -mno-scatter
禁用自动矢量化中生成散射指令(仅限 x86)
921. -mno-seses
禁用推测执行副作用抑制 (SESES)
922. -mno-stack-arg-probe
禁用默认启用的堆栈探测
923. -mno-strict-align
允许内存访问不对齐(仅限 AArch64/LoongArch/RISC-V)
924. -mno-tgsplit
禁用线程组拆分执行模式(仅限 AMDGPU)
925. -mno-tls-direct-seg-refs
禁用通过段寄存器直接进行 TLS 访问
926. -mno-tocdata=<value>
指定要免于 TOC 数据转换的变量列表。
927. -mno-tocdata
这是默认值。 TOC 数据转换不适用于任何变量。只有在 -mtocdata= 中明确指定的变量才会进行 TOC 数据转换。
928. -mno-unaligned-access
强制所有内存访问对齐(仅限 AArch32/MIPSr6)
afl-cc -o target target.c -mno-regnames -mno-relax -mno-restrict-it -mno-save-restore -mno-scalar-strict-align -mno-scatter -mno-seses -mno-stack-arg-probe -mno-strict-align -mno-tgsplit -mno-tls-direct-seg-refs -mno-tocdata=test -mno-tocdata -mno-unaligned-access
929. -mno-unaligned-symbols
要求外部字符对齐符号不进行 ABI 对齐(仅限 SystemZ)
930. -mno-vector-strict-align
允许向量内存访问不对齐(仅限 RISC-V)
931. -mno-wavefrontsize64
指定 wavefront size 为 32 的模式(仅限 AMDGPU)
932. -mnocrc
禁止使用 CRC 指令(仅限 ARM)
933. -mnop-mcount
将 mcount/__fentry__ 调用生成为 nops。要激活它们,需要先进行修补。
934. -mnvj
启用新值跳转生成
935. -mnvs
启用新值存储生成
936. -module-dependency-dir <value>
模块依赖项转储到的目录
937. -module-file-info
提供特定模块文件的信息
938. -momit-leaf-frame-pointer
省略叶函数的帧指针设置
939. -moutline-atomics
生成对外部原子操作的本地调用
940. -moutline
启用函数大纲(仅限 AArch64)
941. -mpacked-stack
使用打包堆栈布局(仅限 SystemZ)。
942. -mpackets
启用指令包生成
943. -mpad-max-prefix-size=<value>
指定用于填充的最大前缀数量
944. -mpic-data-is-text-relative
假设数据段相对于文本段
afl-cc -o target target.c -mno-unaligned-symbols -mno-vector-strict-align -mno-wavefrontsize64 -mnocrc -mnop-mcount -mnvj -mnvs -module-dependency-dir output -module-file-info -momit-leaf-frame-pointer -moutline-atomics -moutline -mpacked-stack -mpackets -mpad-max-prefix-size=output -mpic-data-is-text-relative
945. -mprefer-vector-width=<value>
指定自动矢量化的首选矢量宽度。默认为“none”,允许根据目标平台进行选择。
946. -mprintf-kind=<value>
指定 printf 降低方案(仅限 AMDGPU),允许的值为“hostcall”(打印在内核执行期间进行,此方案依赖于 hostcall,这需要系统支持 PCIe 原子操作)和“buffered”(打印在所有内核线程退出后进行,此方案使用 printf 缓冲区,并且不依赖于 PCIe 原子操作支持)。
947. -MP
为每个依赖项(主文件除外)创建虚拟目标。
948. -mqdsp6-compat
启用 hexagon-qdsp6 向后兼容性。
949. -MQ <value>
指定要在 depfile 中引用的主文件输出名称。
950. -mrecip=<value>
控制使用近似倒数和倒数平方根指令,然后进行 <n> 次牛顿-拉夫森细化迭代。 <value> = ( ['!'] ['vec-'] ('rcp'|'sqrt') [('h'|'s'|'d')] [':'<n>] ) | 'all' | 'default' | 'none'
951. -mrecip
等同于 '-mrecip=all'
952. -mrecord-mcount
为每个 __fentry__ 调用生成一个 __mcount_loc 段条目。
953. -mregnames
编写汇编输出时使用完整的寄存器名称。
954. -mrelax-all
(integrated-as) 放宽所有机器指令。
955. -mrelax
启用链接器放宽。
956. -mrestrict-it
禁止生成复杂的 IT 块。默认关闭。
957. -mrtd
将 StdCall 调用约定设为默认。
afl-cc -o target target.c -mprefer-vector-width=none -mprintf-kind=hostcall -MP -mqdsp6-compat -MQ output -mrecip=n -mrecip -mrecord-mcount -mregnames -mrelax-all -mrelax -mrestrict-it -mrtd
958. -mrvv-vector-bits=<value>
指定 RVV 向量寄存器的位大小
959. -msave-restore
启用使用库调用进行保存和恢复
960. -mscalar-strict-align
强制所有标量内存访问对齐(仅限 RISC-V)
961. -mseses
启用推测执行副作用抑制 (SESES)。包含 LVI 控制流完整性缓解措施
962. -msign-return-address=<value>
选择返回地址签名范围
963. -msimd=<value>
选择要在 LoongArch 中启用的 SIMD 扩展,可选值为“none”、“lsx”或“lasx”。
964. -mskip-rax-setup
传递变量参数时跳过设置 RAX 寄存器(仅限 x86)
965. -msmall-data-limit=<value>
将小于限制的全局和静态数据放入特殊段
966. -msoft-float
使用软件浮点
967. -msse2avx
指定汇编器应使用 VEX 前缀编码 SSE 指令
968. -mstack-alignment=<value>
设置堆栈对齐
969. -mstack-arg-probe
启用堆栈探测
970. -mstack-probe-size=<value>
设置堆栈探测大小
971. -mstack-protector-guard-offset=<value>
使用给定的偏移量来寻址堆栈保护器
afl-cc -o target target.c -mrvv-vector-bits=15 -msave-restore -mscalar-strict-align -mseses -msign-return-address=54 -msimd=none -mskip-rax-setup -msmall-data-limit=34 -msoft-float -msse2avx -mstack-alignment=65 -mstack-arg-probe -mstack-probe-size=32 -mstack-protector-guard-offset=45
972. -mstack-protector-guard-reg=<value>
使用给定的寄存器来寻址堆栈保护器保护器。
973. -mstack-protector-guard-symbol=<value>
使用给定的符号来寻址堆栈保护器保护器。
974. -mstack-protector-guard=<value>
使用给定的保护器(全局、tls)来寻址堆栈保护器保护器。
975. -mstackrealign
强制在每个函数入口处重新对齐堆栈。
976. -mstrict-align
强制所有内存访问对齐(仅限 AArch64/LoongArch/RISC-V)
977. -msve-vector-bits=<value>
指定 SVE 向量寄存器的大小(以位为单位)。默认为与向量长度无关的“scalable”值。 (仅限 AArch64)
978. -msvr4-struct-return
返回寄存器中的小型结构体(仅限 PPC32)
979. -mtargetos=<value>
将部署目标设置为指定的操作系统及其版本
980. -mtgsplit
启用线程组拆分执行模式(仅限 AMDGPU)
981. -mthread-model <value>
使用的线程模型。默认为“posix”
982. -mtls-dialect=<value>
用于动态访问 TLS 变量的线程本地存储方言
983. -mtls-direct-seg-refs
启用通过段寄存器直接访问 TLS(默认)
afl-cc -o target target.c -mstack-protector-guard-reg=test -mstack-protector-guard-symbol=test -mstack-protector-guard=test -mstackrealign -mstrict-align -msve-vector-bits=1 -msvr4-struct-return -mtargetos=test -mtgsplit -mthread-model posix -mtls-dialect=test -mtls-direct-seg-refs
984. -mtls-size=<value>
指定直接 TLS 偏移量的位大小(仅限 AArch64 ELF):12(4KB 时)| 24(16MB 时,默认值)| 32(4GB 时)| 48(256TB 时,需要 -mcmodel=large)
985. -mtocdata=<value>
指定将应用 TOC 数据转换的变量列表。
986. -mtocdata
所有适用的变量都将应用 TOC 数据转换。
987. -mtp=<value>
线程指针访问方法。对于 AArch32:“soft”使用函数调用,或“tpidrurw”、“tpidruro”或“tpidrprw”使用三个 CP15 寄存器。“cp15”是“tpidruro”的别名。对于 AArch64:“tpidr_el0”、“tpidr_el1”、“tpidr_el2”、“tpidr_el3”或“tpidrro_el0”使用五个系统寄存器。“elN”是“tpidr_elN”的别名。
988. -mtune=<value>
仅支持 AArch64、PowerPC、RISC-V、SPARC、SystemZ 和 X86
989. -MT <value>
指定 depfile 中主文件输出的名称
990. -munaligned-access
允许内存访问不对齐(仅限 AArch32/MIPSr6)
991. -munaligned-symbols
允许外部字符对齐符号不进行 ABI 对齐(仅限 SystemZ)
992. -munsafe-fp-atomics
启用不安全浮点原子指令的生成。可能会生成更高效的代码,但可能不遵循舍入和非规格化模式,并且可能会对某些内存目标给出不正确的结果。 (仅限 AMDGPU)
993. -mvector-strict-align
强制所有向量内存访问对齐(仅限 RISC-V)
994. -mvevpu
为 VE 发出 VPU 指令
995. -MV
使用 NMake/Jom 格式的 depfile
afl-cc -o target target.c -mtls-size=12 -mtocdata=test -mtocdata -mtp=tpidrurw -mtune=powerpc -MT output -munaligned-access -munaligned-symbols -munsafe-fp-atomics -mvector-strict-align -mvevpu -MV
996. -mwavefrontsize64
指定 Wavefront Size 64 模式(仅限 AMDGPU)
997. -mxcoff-build-id=<0xHEXSTRING>
在 AIX 上,请求在链接二进制文件内加载器部分的字符串表中创建 build-id 字符串“0xHEXSTRING”。
998. -mxcoff-roptr
将具有可重定位地址值的常量对象放置在 RO 数据部分中,并在链接器标志中添加 -bforceimprw(仅限 AIX)
999. -mzos-hlq-clang=<ClangHLQ>
z/OS C++RT 侧板数据集的高级限定符
1000. -mzos-hlq-csslib=<CsslibHLQ>
z/OS CSSLIB 数据集的高级限定符
1001. -mzos-hlq-le=<LeHLQ>
z/OS 语言环境数据集的高级限定符
1002. -mzos-sys-include=<SysInclude>
z/OS 上系统头文件的路径
1003. -M
与 -MD 类似,但也隐含 -E 选项,默认写入标准输出。
1004. --no-cuda-include-ptx=<value>
不包含以下 GPU 架构(例如 sm_35)或“全部”的 PTX。可以多次指定。
1005. --no-cuda-version-check
如果检测到的 CUDA 安装版本对于请求的 CUDA GPU 架构而言过低,则不会出错。
1006. --no-default-config
禁用加载默认配置文件。
1007. --no-gpu-bundle-output
不打包 HIP 设备编译的输出文件。
1008. --no-hip-rt
不链接 HIP 运行时库。
afl-cc -o target target.c -mwavefrontsize64 -mxcoff-build-id=0xHEXSTRING -mxcoff-roptr -mzos-hlq-clang=ClangHLQ -mzos-hlq-csslib=CsslibHLQ -mzos-hlq-le=LeHLQ -mzos-sys-include=output -M --no-cuda-include-ptx=PTX --no-cuda-version-check --no-default-config --no-gpu-bundle-output --no-hip-rt
1009. --no-offload-arch=<value>
从要编译的设备列表中移除 CUDA/HIP 卸载设备架构(例如 sm_35、gfx906)。“all”选项会将列表重置为默认值。
1010. --no-offload-new-driver
不使用新的驱动程序进行卸载编译。
1011. --no-system-header-prefix=<prefix>
将所有以 <prefix> 开头的 #include 路径视为不包含系统头文件。
1012. --no-wasm-opt
禁用 wasm-opt 优化器
1013. -nobuiltininc
禁用内置 #include 目录
1014. -nogpuinc
不添加 CUDA/HIP 的包含路径,也不包含默认的 CUDA/HIP 包装器头文件
1015. -nogpulib
不链接 CUDA/HIP 设备编译的设备库
1016. -nohipwrapperinc
不包含默认的 HIP 包装器头文件和包含路径
1017. -nostdinc++
禁用 C++ 标准库的标准 #include 目录
1018. --nvptx-arch-tool=<value>
用于检测系统中 NVIDIA GPU 架构的工具。
1019. -ObjC++
将源输入文件视为 Objective-C++ 输入
1020. -objcmt-allowlist-dir-path=<value>
仅修改文件名包含在指定目录路径中的文件
1021. -objcmt-atomic-property
迁移到“原子”属性
afl-cc -o target target.c --no-offload-arch=all --no-offload-new-driver --no-system-header-prefix=output --no-wasm-opt -nobuiltininc -nogpuinc -nogpulib -nohipwrapperinc -nostdinc++ --nvptx-arch-tool=output -ObjC++ -objcmt-allowlist-dir-path=output -objcmt-atomic-property
1022. -objcmt-migrate-all
启用向现代 ObjC 的迁移
1023. -objcmt-migrate-annotation
启用向属性和方法注解的迁移
1024. -objcmt-migrate-designated-init
启用迁移以推断初始化方法的 NS_DESIGNATED_INITIALIZER 类型
1025. -objcmt-migrate-instancetype
启用迁移以推断方法结果类型的实例类型
1026. -objcmt-migrate-literals
启用向现代 ObjC 字面量的迁移
1027. -objcmt-migrate-ns-macros
启用向 NS_ENUM/NS_OPTIONS 宏的迁移
1028. -objcmt-migrate-property-dot-syntax
启用将 setter/getter 消息迁移到 property-dot 语法
1029. -objcmt-migrate-property
启用向现代 ObjC 属性的迁移
1030. -objcmt-migrate-protocol-conformance
启用迁移以添加协议一致性在类上
1031. -objcmt-migrate-readonly-property
启用迁移到现代 ObjC 只读属性
1032. -objcmt-migrate-readwrite-property
启用迁移到现代 ObjC 读写属性
1033. -objcmt-migrate-subscripting
启用迁移到现代 ObjC 下标
afl-cc -o target target.c -objcmt-migrate-all -objcmt-migrate-annotation -objcmt-migrate-designated-init -objcmt-migrate-instancetype -objcmt-migrate-literals -objcmt-migrate-ns-macros -objcmt-migrate-property-dot-syntax -objcmt-migrate-property -objcmt-migrate-protocol-conformance -objcmt-migrate-readonly-property -objcmt-migrate-readwrite-property -objcmt-migrate-subscripting
1034. -objcmt-ns-nonatomic-iosonly
启用迁移以使用 NS_NONATOMIC_IOSONLY 宏设置属性的“atomic”属性
1035. -objcmt-returns-innerpointer-property
启用迁移以使用 NS_RETURNS_INNER_POINTER 注释属性
1036. -objcmt-whitelist-dir-path=<value>
-objcmt-allowlist-dir-path 的别名
1037. -ObjC
将源输入文件视为 Objective-C 输入
1038. -object-file-name=<file>
设置调试信息的输出 <file>
1039. -Ofast<value>
已弃用;使用“-O3 -ffast-math”可获得相同行为,或使用“-O3”仅启用符合规范的优化
1040. --offload-arch=<value>
为 CUDA、HIP 或 OpenMP 指定卸载设备架构。(例如 sm_35)。如果使用“native”,编译器将检测本地安装的架构。对于 HIP 卸载,设备架构后可以跟以冒号分隔的目标 ID 特性(例如 gfx908:xnack+:sramecc-)。可以多次指定。
1041. --offload-compress
压缩卸载设备二进制文件(仅限 HIP)
1042. --offload-device-only
仅为卸载设备编译。
1043. --offload-host-device
同时为卸载主机和设备编译(默认)。
1044. --offload-host-only
仅为卸载主机编译。
1045. --offload-link
使用新的卸载链接器执行链接作业。
1046. --offload-new-driver
使用新的驱动程序进行卸载编译。
afl-cc -o target target.c -objcmt-ns-nonatomic-iosonly -objcmt-returns-innerpointer-property -objcmt-whitelist-dir-path=test -ObjC -object-file-name=output -Ofast O3 --offload-arch=CUDA --offload-compress --offload-device-only --offload-host-device --offload-host-only --offload-link --offload-new-driver
1047. --offload=<value>
指定以逗号分隔的卸载目标三元组列表(仅限 CUDA 和 HIP)
1048. -o <file>
将输出写入 <file>
1049. -pedantic
对语言扩展发出警告
1050. -pg
启用 mcount 检测
1051. -pipe
尽可能在命令之间使用管道
1052. --precompile
仅预编译输入
1053. --pretty-sgf
生成美观的符号图
1054. -print-diagnostic-options
打印所有 Clang 的警告选项
1055. -print-effective-triple
打印有效的目标三元组
1056. -print-enabled-extensions
打印给定目标和 -march/-mcpu 选项启用的扩展。 (仅限 AArch64 和 RISC-V)
1057. -print-file-name=<file>
打印 <file> 的完整库路径
1058. -print-ivar-layout
启用 Objective-C Ivar 布局位图打印跟踪
1059. -print-libgcc-file-name
打印当前使用的编译器运行时库的库路径(“libgcc.a”或“libclang_rt.builtins.*.a”)
1060. -print-library-module-manifest-path
打印 C++ 标准库模块清单的路径
1061. -print-multi-flags-experimental
打印用于选择多库的标志(实验性)
1062. -print-prog-name=<name>
打印 <name> 的完整程序路径
1063. -print-resource-dir
打印资源目录路径名
afl-cc -o target target.c --offload=HIP -pedantic -pg -pipe --precompile --pretty-sgf -print-diagnostic-options -print-effective-triple -print-enabled-extensions -print-file-name=output -print-ivar-layout -print-libgcc-file-name -print-library-module-manifest-path -print-multi-flags-experimental -print-prog-name=output -print-resource-dir output
1064. -print-rocm-search-dirs
打印用于查找 ROCm 安装的路径
1065. -print-runtime-dir
打印包含 Clang 运行时库的目录路径名
1066. -print-search-dirs
打印用于查找库和程序的路径
1067. -print-supported-cpus
打印指定目标支持的 CPU 型号(如果未指定目标,则打印默认目标支持的 CPU)
1068. -print-supported-extensions
打印支持的 -march 扩展(仅限 RISC-V、AArch64 和 ARM)
1069. -print-target-triple
打印规范化的目标三元组
1070. -print-targets
打印已注册的目标
1071. -pthread
在生成的代码中支持 POSIX 线程
1072. --ptxas-path=<value>
ptxas 的路径(用于编译 CUDA 代码)
1073. -P
在 -E 模式下禁用行标记输出
1074. -p
使用 prof 启用 mcount 检测
1075. -Qn
不输出包含编译器名称和版本的元数据
1076. -Qunused-arguments
不发出警告未使用的驱动程序参数
1077. -Qy
发出包含编译器名称和版本的元数据
1078. -regcall4
将 __regcall4 设置为默认调用约定,以遵循 __regcall ABI v.4
1079. -relocatable-pch
是否构建可重定位的预编译头文件
1080. -rewrite-legacy-objc
将旧版 Objective-C 源代码重写为 C++
1081. -rewrite-objc
将 Objective-C 源代码重写为 C++
afl-cc -o target target.c -print-rocm-search-dirs -print-runtime-dir -print-search-dirs -print-supported-cpus -print-supported-extensions -print-target-triple -print-targets -pthread --ptxas-path=output -P -p -Qn -Qunused-arguments -Qy -regcall4 -relocatable-pch -rewrite-legacy-objc -rewrite-objc
1082. --rocm-device-lib-path=<value>
ROCm 设备库路径。rocm-path 的替代选项。
1083. --rocm-path=<value>
ROCm 安装路径,用于查找并自动链接所需的位码库。
1084. -Rpass-analysis=<value>
报告名称与给定 POSIX 正则表达式匹配的优化过程的转换分析结果。
1085. -Rpass-missed=<value>
报告名称与给定 POSIX 正则表达式匹配的优化过程遗漏的转换结果。
1086. -Rpass=<value>
报告名称与给定 POSIX 正则表达式匹配的优化过程执行的转换结果。
1087. -rtlib=<value>
要使用的编译器运行时库。
1088. -R<remark>
启用指定的注释。
1089. -save-stats=<value>
保存 llvm 统计信息。
1090. -save-stats
保存 llvm 统计信息。
1091. -save-temps=<value>
保存中间编译结果。 <arg> 可设置为 'cwd'(表示当前工作目录)或 'obj'(表示将临时文件保存在与最终输出文件相同的目录中)。
1092. -save-temps
--save-temps=cwd 的别名
1093. -serialize-diagnostics <value>
将编译器诊断信息序列化为文件。
1094. -shared-libsan
动态链接清理器运行时。
1095. --start-no-unused-arguments
不针对以下参数发出有关未使用参数的警告。
1096. -static-libsan
静态链接清理器运行时(Darwin 上的 ASan、TSan 或 UBSan 不支持)
1097. -static-openmp
链接时使用静态主机 OpenMP 运行时。
afl-cc -o target target.c --rocm-device-lib-path=output --rocm-path=output -Rpass-analysis=output -Rpass-missed=output -Rpass=output -rtlib=output -R -save-stats=output -save-temps=arg -save-temps -serialize-diagnostics output -shared-libsan --start-no-unused-arguments -static-libsan -static-openmp
1098. -std=<value>
编译所针对的语言标准
1099. -stdlib++-isystem <directory>
使用目录作为 C++ 标准库的包含路径
1100. -stdlib=<value>
使用的 C++ 标准库
1101. -sycl-std=<value>
编译所针对的 SYCL 语言标准。
1102. --symbol-graph-dir=<value>
生成符号图的目录。
1103. --system-header-prefix=<prefix>
将所有以 <prefix> 开头的 #include 路径视为包含系统头文件。
1104. -S
仅运行预处理和编译步骤
1105. --target=<value>
为指定目标生成代码
1106. -time
计时单个命令
1107. -traditional-cpp
启用部分传统 CPP 仿真
1108. -trigraphs
处理三字母序列
1109. -T <script>
指定 <script> 作为链接器脚本
1110. -undef
undef 所有系统定义
1111. -unwindlib=<value>
解开要使用的库
1112. -U <macro>
取消宏 <macro> 的定义
1113. --verify-debug-info
验证调试输出的二进制表示
1114. -verify-pch
加载并验证预编译头文件是否过期
afl-cc -o target target.c -std=test -stdlib++-isystem output -stdlib=output -sycl-std=output --symbol-graph-dir=output --system-header-prefix=output -S --target=output -time -traditional-cpp -trigraphs -T script -undef -unwindlib=output -U output --verify-debug-info -verify-pch
1115. --version
打印版本信息
afl-cc --version
1116. -vfsoverlay <value>
将文件描述的虚拟文件系统覆盖在真实文件系统上。此外,如果链接器支持,则将此覆盖文件传递给链接器
1117. -v
显示要运行的命令并使用详细输出。
1118. -Wa,<arg>
将 <arg> 中以逗号分隔的参数传递给汇编器。
1119. --wasm-opt
启用 wasm-opt 优化器(默认)
1120. -Wdeprecated
启用已弃用构造的警告并定义 __DEPRECATED。
1121. -Winvalid-constexpr
启用在常量表达式上下文中检查 constexpr 函数体的有效性。
1122. -Wl,<arg>
将 <arg> 中以逗号分隔的参数传递给链接器。
1123. -Wno-invalid-constexpr
禁用在常量表达式上下文中检查 constexpr 函数体的有效性。
1124. -working-directory <value>
解析相对于指定目录的文件路径。
1125. -Wp,<arg>
将 <arg> 中以逗号分隔的参数传递给预处理器。
1126. -W<warning>
启用指定的警告。
1127. -w
抑制所有警告。
1128. -Xanalyzer <arg>
传递 <arg>到静态分析器
1129. -Xarch_device <arg>
将 <arg> 传递给 CUDA/HIP 设备编译
1130. -Xarch_host <arg>
将 <arg> 传递给 CUDA/HIP 主机编译
1131. -Xassembler <arg>
将 <arg> 传递给汇编器
1132. -Xclang=<arg>
-Xclang 的别名
1133. -Xclang <arg>
将 <arg> 传递给 clang -cc1
1134. -Xcuda-fatbinary <arg>
将 <arg> 传递给 fatbinary 调用
1135. -Xcuda-ptxas <arg>
将 <arg> 传递给 ptxas 汇编器
afl-cc -o target target.c -vfsoverlay test -v -Wa --wasm-opt -Wdeprecated -Winvalid-constexpr -Wl -Wno-invalid-constexpr -working-directory output -Wp -W -w -Xanalyzer -Xarch_device -Xarch_host -Xassembler -Xclang -Xcuda-fatbinary -Xcuda-ptxas
1136. -Xlinker <arg>
将 <arg> 传递给链接器
1137. -Xoffload-linker<triple> <arg>
将 <arg> 传递给卸载链接器或由 -<triple> 标识的链接器
1138. -Xopenmp-target=<triple> <arg>
将 <arg> 传递给由 <triple> 标识的目标卸载工具链。
1139. -Xopenmp-target <arg>
将 <arg> 传递给目标卸载工具链。
1140. -Xpreprocessor <arg>
将 <arg> 传递给预处理器
1141. -x <language>
将后续输入文件视为具有 <language> 类型
1142. -z <arg>
将 -z <arg> 传递给链接器
dxc 兼容性选项
1143. --dxv-path=<value>
DXIL 验证器安装路径
1144. -fspv-target-env=<value>
指定目标环境
1145. -hlsl-entry <value>
hlsl 的入口点名称
afl-cc -o target target.c -Xlinker -Xoffload-linker triple arg -Xopenmp-target=triple -Xopenmp-target -Xpreprocessor -x -z --dxv-path=output -fspv-target-env=output -hlsl-entry output/