×

注意!页面内容来自https://www.bilibili.com/opus/1077842379643289652,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页

aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(二)
永遠的曙光
关注

使用

afl-c++

536. -fpch-instantiate-templates

构建 PCH 时实例化模板

537. -fpch-validate-input-files-content

如果修改时间不同,则根据内容验证 PCH 输入文件

538. -fplugin-arg-

539. -fplugin=

加载指定插件(动态共享对象)

540. -fprebuilt-implicit-modules

在预构建模块路径中查找隐式模块

541. -fprebuilt-module-path=

指定预构建模块路径

542. -fproc-stat-report=

将子进程统计信息保存到指定文件

543. -fproc-stat-report

打印子进程统计信息

544. -fprofile-arcs

生成 gcov 数据文件 (*.gcda) 的 Instrument 代码

545. -fprofile-exclude-files=

Instrument 仅对名称与所有以分号分隔的正则表达式不匹配的文件执行操作

546. -fprofile-filter-files=

仪器仅对名称与分号分隔的正则表达式匹配的文件起作用

547. -fprofile-function-groups=

将函数划分为 N 组,并使用 -fprofile-selected-function-group 仅选择第 i 组中的函数进行插桩

548. -fprofile-generate=

生成插桩代码,将执行计数收集到

549. -fprofile-generate

生成插桩代码,将执行计数收集到 default.profraw 中(会被 LLVM_PROFILE_FILE 环境变量覆盖)

550. -fprofile-instr-generate=

生成插桩代码,将执行计数收集到

551. -fprofile-instr-generate

生成插桩代码,将执行计数收集到 default.profraw 文件中(会被选项的“=”形式或 LLVM_PROFILE_FILE 环境变量覆盖)

552. -fprofile-instr-use=

使用插桩数据用于配置文件引导优化

553. -fprofile-list=

定义要检测的函数/文件列表的文件名。该文件使用清理器特例列表格式。

554. -fprofile-remapping-file=

使用

555. -fprofile-sample-accurate

指定样本配置文件是精确的。

556. -fprofile-sample-use=

启用基于样本的配置文件引导优化。

557. -fprofile-selected-function-group=

使用 -fprofile-function-groups 将函数划分为 N 个组,并仅选择第 i 组中的函数进行检测。有效范围为 0 到 N-1(含)。

558. -fprofile-update=

设置配置文件计数器的更新方法。

559. -fprofile-use=

使用检测数据进行配置文件引导优化。如果 pathname 是目录,则从

560. -fprotect-parens

确定优化器在计算浮点表达式时是否支持括号

561. -fpseudo-probe-for-profiling

为样本分析发出伪探测

562. -fptrauth-auth-traps

启用身份验证失败时的陷阱

563. -fptrauth-calls

启用所有间接调用的签名和身份验证

564. -fptrauth-function-pointer-type-discrimination

启用 C 函数指针的类型识别

565. -fptrauth-indirect-gotos

启用间接 goto 目标的签名和身份验证

566. -fptrauth-init-fini

启用 init/fini 数组中函数指针的签名

567. -fptrauth-intrinsics

启用指针身份验证内在函数

568. -fptrauth-returns

启用返回地址的签名和身份验证

569. -fptrauth-type-info-vtable-pointer-discrimination

启用 std::type_info 虚表指针的类型和地址识别

570. -fptrauth-vtable-pointer-address-discrimination

启用虚表指针的地址识别

571. -fptrauth-vtable-pointer-type-discrimination

启用虚表指针的类型识别

572. -frandomize-layout-seed-file=

保存随机化结构布局功能使用的种子的文件

573. -frandomize-layout-seed=

随机化结构布局功能使用的种子

574. -fraw-string-literals

启用原始字符串文字

575. -freciprocal-math

允许重新关联除法运算

576. -freg-struct-return

覆盖默认 ABI,以在寄存器中返回小型结构体

577. -fregister-global-dtors-with-atexit

使用 atexit 或 __cxa_atexit 注册全局析构函数

578. -frelaxed-template-template-args

启用 C++17 宽松模板参数匹配

579. -fropi

生成只读位置无关代码(仅限 ARM)

580. -frtlib-add-rpath

将 -rpath 和特定于体系结构的资源目录添加到链接器标志。指定 --hip-link 时,还需将 -rpath 和 HIP 运行时库目录添加到链接器标志中。

581. -frtlib-defaultlib

在 Windows 上,发出 /defaultlib: 指令以链接编译器实时库(默认)。

582. -frwpi

生成读写位置无关代码(仅限 ARM)。

583. -fsafe-buffer-usage-suggestions

显示与 -Wunsafe-buffer-usage 警告相关的代码更新建议。

584. -fsample-profile-use-profi

使用 profi 推断块数和边数。

585. -fsanitize-address-destructor=

设置 AddressSanitizer 插桩工具发出的模块析构函数类型。这些析构函数用于在代码卸载时(例如通过 `dlclose()`)注销已插桩的全局变量。

586. -fsanitize-address-field-padding=

AddressSanitizer 的字段填充级别

587. -fsanitize-address-globals-dead-stripping

在 AddressSanitizer 中启用链接器全局变量的死区剥离

588. -fsanitize-address-outline-instrumentation

始终为地址清理器插桩生成函数调用

589. -fsanitize-address-poison-custom-array-cookie

在 AddressSanitizer 中使用自定义运算符 new[] 时启用数组 cookie 中毒

590. -fsanitize-address-use-after-return=

选择 AddressSanitizer 中堆栈返回后使用检测模式

591. -fsanitize-address-use-after-scope

在 AddressSanitizer 中启用作用域后使用检测

592. -fsanitize-address-use-odr-indicator

启用 ODR 指示全局变量,以避免在部分清理的程序中出现错误的 ODR 违规报告,但会增加二进制大小

593. -fsanitize-cfi-canonical-jump-tables

使符号表中的跳转表地址规范化

594. -fsanitize-cfi-cross-dso

为跨 DSO 调用启用控制流完整性 (CFI) 检查。

595. -fsanitize-cfi-icall-experimental-normalize-integers

在 CFI 间接调用类型签名检查中规范化整数

596. -fsanitize-cfi-icall-generalize-pointers

在 CFI 间接调用类型签名检查中泛化指针

597. -fsanitize-coverage-allowlist=

将 Sanitizer 覆盖率检测限制在符合提供的特殊情况列表的模块和函数上,被阻止的模块和函数除外

598. -fsanitize-coverage-ignorelist=

禁用 Sanitizer 覆盖率检测,即使这些模块和函数符合提供的特殊情况列表,即使是允许的模块和函数也是如此

599. -fsanitize-coverage=

指定 Sanitizer 的覆盖率检测类型

600. -fsanitize-hwaddress-abi=

选择要定位的 HWAddressSanitizer ABI(拦截器或平台,默认拦截器)。此选项目前未使用。

601. -fsanitize-hwaddress-experimental-aliasing

在 HWAddressSanitizer 中启用别名模式

602. -fsanitize-ignorelist=

消毒器的忽略列表文件路径

603. -fsanitize-memory-param-retval

启用未初始化参数和返回值的检测

604. -fsanitize-memory-track-origins=

在 MemorySanitizer 中启用来源跟踪

605. -fsanitize-memory-track-origins

在 MemorySanitizer 中启用来源跟踪

606. -fsanitize-memory-use-after-dtor

在 MemorySanitizer 中启用销毁后使用检测

607. -fsanitize-memtag-mode=

将默认 MTE 模式设置为“同步”(默认)或“异步”

608. -fsanitize-recover=

为指定的消毒器启用恢复

609. -fsanitize-stable-abi

稳定版用于杀毒器运行时的 ABI 检测。默认值:Conventional(常规)

610. -fsanitize-stats

启用杀毒器统计信息收集。

611. -fsanitize-system-ignorelist=

杀毒器系统忽略列表文件的路径

612. -fsanitize-thread-atomics

在 ThreadSanitizer 中启用原子操作检测(默认)

613. -fsanitize-thread-func-entry-exit

在 ThreadSanitizer 中启用函数入口/出口检测(默认)

614. -fsanitize-thread-memory-access

在 ThreadSanitizer 中启用内存访问检测(默认)

615. -fsanitize-trap=

为指定的消毒器启用捕获

616. -fsanitize-trap

为所有消毒器启用捕获

617. -fsanitize-undefined-strip-path-components=

在发出检查元数据时,删除(或仅保留,如果为负数)指定数量的路径组件。

618. -fsanitize=

针对各种形式的未定义或可疑行为启用运行时检查。请参阅用户手册了解可用的检查

619. -fsave-optimization-record=

生成特定格式的优化记录文件

620. -fsave-optimization-record

生成 YAML 优化记录文件

621. -fseh-exceptions

使用 SEH 样式的异常

622. -fseparate-named-sections

为命名部分使用单独的唯一部分(仅限 ELF)

623. -fshort-enums

为枚举类型分配其声明的可能值范围所需的字节数

624. -fshort-wchar

强制 wchar_t 为短无符号整型

625. -fshow-overloads=

当过载解析失败时,显示哪些过载候选项。默认为“all”。

626. -fshow-skipped-includes

在 -H 输出中显示跳过的包含。

627. -fsigned-char

字符是有符号的。

628. -fsized-deallocation

启用 C++14 大小的全局释放函数。

629. -fsjlj-exceptions

使用 SjLj 风格的异常。

630. -fskip-odr-check-in-gmf

跳过全局模块片段中声明的 ODR 检查。

631. -fslp-vectorize

启用超字级并行向量化过程

632. -fspell-checking-limit=

设置对无法识别的标识符执行拼写检查的最大次数(0 = 无限制)

633. -fsplit-dwarf-inlining

在使用 Split DWARF 时,在没有 .dwo/.dwp 文件的情况下,在对象/可执行文件中提供最少的调试信息,以便于在线符号化/堆栈跟踪

634. -fsplit-lto-unit

启用 LTO 单元拆分

635. -fsplit-machine-functions

启用使用配置文件信息进行后期函数拆分 (x86 ELF)

636. -fsplit-stack

使用分段堆栈

637. -fstack-clash-protection

启用堆栈冲突保护

638. -fstack-protector-all

为所有函数启用堆栈保护器

639. -fstack-protector-strong

为一些易受堆栈溢出攻击 (stack smashing) 影响的函数启用堆栈保护器。与 -fstack-protector 相比,此选项采用更强的启发式算法,涵盖包含任意大小(和任意类型)数组的函数,以及任何对 alloca 的调用或从局部变量获取地址的操作。

640. -fstack-protector

为一些易受堆栈溢出攻击 (stack smashing) 影响的函数启用堆栈保护器。此选项采用宽松的启发式算法,如果函数包含字符(或 8 位整数)数组或常量大小的 alloca 调用,且其大小大于 ssp-buffer-size(默认值:8 字节),则认为这些函数易受攻击。所有可变大小的 alloca 调用都被视为易受攻击。启用堆栈保护器的函数会在堆栈框架中添加一个保护值,并在函数退出时进行检查。该保护值在堆栈框架中的位置必须确保易受攻击变量的缓冲区溢出在覆盖函数返回地址之前先覆盖该保护值。引用堆栈保护值存储在全局变量中。

641. -fstack-size-section

发出包含函数堆栈大小元数据的节

642. -fstack-usage

发出包含函数堆栈大小信息的 .su 文件

643. -fstandalone-debug

发出程序使用的所有类型的完整调试信息

644. -fstrict-aliasing

启用基于严格别名规则的优化

645. -fstrict-enums

启用基于枚举值范围的严格定义的优化

646. -fstrict-flex-arrays=

启用基于灵活数组严格定义的优化

647. -fstrict-float-cast-overflow

假设溢出的浮点型到整型的强制类型转换未定义(默认)

648. -fstrict-vtable-pointers

启用基于覆盖多态 C++ 对象的严格规则的优化

649. -fswift-async-fp=

控制 Swift 异步扩展帧信息的发布

650. -fsycl

启用设备的 SYCL 内核编译

651. -fsyntax-only

运行预处理器、解析器和语义分析阶段

652. -fsystem-module

将此模块构建为系统模块。仅与 -emit-module 一起使用

653. -ftemplate-backtrace-limit=

设置模板实例化回溯中打印的最大条目数(0 = 无限制)

654. -ftemplate-depth=

设置递归模板实例化的最大深度

655. -ftest-coverage

生成 gcov 注释文件 (*.gcno)

656. -fthin-link-bitcode=

仅针对 ThinLTO 瘦链接,将最小化的位码写入

657. -fthinlto-index=

使用提供的函数摘要索引执行 ThinLTO 导入

658. -ftime-report=

(适用于新的 pass 管理器)'per-pass':每个 pass 生成一份报告;'per-pass-run':每次 pass 调用生成一份报告

659. -ftime-trace-granularity=

时间分析器跟踪的最小时间粒度(以微秒为单位)

660. -ftime-trace-verbose

使时间跟踪捕获详细的事件详细信息(例如源文件名)。这可以使输出大小增加 2-3 倍

661. -ftime-trace=

与 -ftime-trace 类似。指定 JSON 文件或包含 JSON 文件的目录

662. -ftime-trace

启用时间分析器。根据输出文件名生成 JSON 文件。

663. -ftrap-function=

调用指定函数,而不是陷阱指令

664. -ftrapv-handler=

指定溢出时调用的函数

665. -ftrapv

整数溢出陷阱

666. -ftrigraphs

处理三字组序列

667. -ftrivial-auto-var-init-max-size=

如果变量大小超过指定的实例数(以字节为单位),则停止初始化简单的自动堆栈变量

668. -ftrivial-auto-var-init-stop-after=

在指定数量的实例后停止初始化琐碎的自动堆栈变量

669. -ftrivial-auto-var-init=

初始化琐碎的自动堆栈变量。默认为“uninitialized(未初始化)”

670. -funified-lto

使用统一的 LTO 流水线

671. -funique-basic-block-section-names

为基本块部分使用唯一名称(仅限 ELF)

672. -funique-internal-linkage-names

通过附加模块路径的 MD5 哈希值来唯一化内部链接符号名称

673. -funroll-loops

开启循环展开器

674. -funsafe-math-optimizations

允许不安全的浮点数学优化,这可能会降低精度

675. -fuse-cuid=

为单源卸载语言 CUDA 和 HIP 生成编译单元 ID 的方法:'hash'(通过哈希文件路径和命令行选项生成的 ID)| 'random'(ID 生成为随机数)| 'none'(禁用)。默认值为 'hash'。如果指定了此选项,则将被选项 '-cuid=[ID]' 覆盖。

676. -fuse-line-directives

在预处理输出中使用 #line

677. -fvalidate-ast-input-files-content

计算并存储用于构建AST的输入文件的哈希值。如果修改时间不匹配的文件内容相同,则视为有效文件。

678. -fveclib=

使用指定的向量函数库

679. -fvectorize

启用循环向量化过程

680. -fverbose-asm

生成详细的汇编输出

681. -fverify-intermediate-code

启用LLVM IR验证

682. -fvirtual-function-elimination

启用死虚函数消除优化。需要-flto=full选项。

683. -fvisibility-dllexport=

dllexport定义的可见性。如果指定了Keep,则不调整可见性。[-fvisibility-from-dllstorageclass]

684. -fvisibility-externs-dllimport=

dllimport外部声明的可见性。如果指定了 Keep,则不调整可见性 [-fvisibility-from-dllstorageclass]

685. -fvisibility-externs-nodllstorageclass=

未指定显式 DLL 存储类型的外部声明的可见性。如果指定了 Keep,则不调整可见性 [-fvisibility-from-dllstorageclass]

686. -fvisibility-from-dllstorageclass

根据全局变量的最终 DLL 存储类型覆盖其可见性。

687. -fvisibility-global-new-delete-hidden

使全局 C++ 运算符 new 和 delete 声明具有隐藏可见性

688. -fvisibility-global-new-delete=

全局 C++ 运算符 new 和 delete 声明的可见性。如果指定了“source”,则不调整可见性。

689. -fvisibility-inlines-hidden-static-local-var

启用 -fvisibility-inlines-hidden 后,内联 C++ 成员函数中的静态变量也将默认具有隐藏可见性。

690. -fvisibility-inlines-hidden

使内联 C++ 成员函数默认具有隐藏可见性。

691. -fvisibility-ms-compat

使全局类型具有“default”可见性,全局函数和变量默认具有“hidden”可见性。

692. -fvisibility-nodllstorageclass=

未指定显式 DLL 存储类的定义的可见性。如果指定了 Keep,则不调整可见性 [-fvisibility-from-dllstorageclass]

693. -fvisibility=

设置所有全局定义的默认符号可见性

694. -fwasm-exceptions

使用 WebAssembly 风格的异常

695. -fwhole-program-vtables

启用全程序 vtable 优化。需要 -flto

696. -fwrapv

将有符号整数溢出视为二进制补码

697. -fwritable-strings

将字符串文字存储为可写数据

698. -fxl-pragma-pack

启用 IBM XL #pragma pack 处理

699. -fxray-always-emit-customevents

即使包含函数并非始终被检测,也始终发出 __xray_customevent(...) 调用

700. -fxray-always-emit-typedevents

即使包含函数并非始终被检测,也始终发出 __xray_typedevent(...) 调用

701. -fxray-always-instrument=

已弃用:定义用于注入“始终检测”XRay 属性的白名单的文件名。

702. -fxray-attr-list=

定义用于注入 XRay 属性的函数/类型列表的文件名。

703. -fxray-function-groups=

仅检测 N 个组中的 1 个

704. -fxray-ignore-loops

除非循环函数也满足最小函数大小要求,否则不检测带有循环的函数。

705. -fxray-instruction-threshold=

设置使用 XRay 检测的最小函数大小。

706. -fxray-instrumentation-bundle=

选择要发出的 XRay 检测点。选项:all、none、function-entry、function-exit、function、custom。默认值为“all”。“function”包含“function-entry”和“function-exit”。

707. -fxray-instrument

在函数入口和出口生成 XRay 插桩工具。

708. -fxray-link-deps

指定 -fxray-instrument 时链接 XRay 运行时库(默认)。

709. -fxray-modes=

默认链接到 XRay 插桩二进制文件的模式列表。

710. -fxray-never-instrument=

已弃用:定义用于注入“从不插桩”XRay 属性的白名单的文件名。

711. -fxray-selected-function-group=

使用 -fxray-function-groups 时,选择要插桩的函数组。有效范围为 0 至 fxray-function-groups - 1

712. -fzero-call-used-regs=

函数返回时清除调用使用的寄存器(仅限 AArch64/x86)

713. -fzvector

启用 System z 矢量语言扩展

714. -F

将目录添加到框架包含文件搜索路径

715. --gcc-install-dir=

使用指定目录中的 GCC 安装。该目录以类似“lib{,32,64}/gcc{,-cross}/$triple/$version”的路径部分结尾。注意:编译器使用的可执行文件(例如 ld)不会被所选的 GCC 安装覆盖

716. --gcc-toolchain=

指定 Clang 可以找到“include”和“lib{,32,64}/gcc{,-cross}/$triple/$version”的目录。Clang 将使用版本最高的 GCC 安装。

717. --gcc-triple=

搜索包含指定三元组的 GCC 安装。

718. -gcodeview-command-line

将编译器路径和命令行发送到 CodeView 调试信息中

719. -gcodeview-ghash

将类型记录哈希值发送到 .debug$H 段

720. -gcodeview

生成 CodeView 调试信息

721. -gdwarf-2

使用 dwarf 版本 2 生成源代码级调试信息

722. -gdwarf-3

使用 dwarf 版本 3 生成源代码级调试信息

723. -gdwarf-4

使用 dwarf 版本 4 生成源代码级调试信息

724. -gdwarf-5

使用 dwarf 版本 5 生成源代码级调试信息

725. -gdwarf32

如果启用了调试信息生成,则为 ELF 二进制文件启用 DWARF32 格式。

726. -gdwarf64

如果启用了调试信息生成,则为 ELF 二进制文件启用 DWARF64 格式。

727. -gdwarf

使用默认的 Dwarf 版本生成源码级调试信息

728. -gembed-source

在 DWARF 调试部分嵌入源码文本

729. -gen-reproducer=

启用重现器(选项:off(关闭)crash (default)(崩溃(默认))error(错误)always(始终))

730. -gline-directives-only

仅发出调试行信息指令

731. -gline-tables-only

仅发出调试行号表

732. -gmodules

生成包含对 clang 模块或预编译头文件的外部引用的调试信息

733. -gno-codeview-command-line

不将编译器路径和命令行发送到 CodeView 调试信息中

734. -gno-embed-source

恢复默认行为,不在 DWARF 调试段中嵌入源文本

735. -gno-inline-line-tables

不发出内联行号表。

736. --gpu-bundle-output

HIP 设备编译的捆绑输出文件

737. --gpu-instrument-lib=

HIP 的仪器设备库,它是一个包含 __cyg_profile_func_enter 和 __cyg_profile_func_exit 的 LLVM 位码

738. --gpu-max-threads-per-block=

HIP 内核启动边界的默认每个块最大线程数

739. -gpulibc

链接用于 GPU 的 LLVM C 库

740. -gsplit-dwarf=

设置 DWARF 裂变模式

741. -gstrict-dwarf

将 DWARF 功能限制为指定版本中定义的功能,避免使用更高版本的功能。

742. -gz=

DWARF 调试段压缩类型

743. -G

将最多

744. -g

生成源码级调试信息

745. --help-hidden

显示隐藏选项的帮助

746. --hip-device-lib=

HIP 设备库

747. --hip-link

为 HIP 链接 clang-offload-bundler 包

748. --hip-path=

HIP 运行时安装路径,用于查找 HIP 版本并添加 HIP 包含路径。

749. --hip-version=

HIP 版本号,格式为 major.minor.patch

750. --hipspv-pass-plugin=

HIP 到 SPIR-V 转换的转换插件路径。

751. --hipstdpar-interpose-alloc

将所有内存分配/释放调用替换为 hipManagedMalloc/hipFree 等效项

752. --hipstdpar-path=

HIP 标准并行算法加速库路径,用于查找并隐式包含库头文件

753. --hipstdpar-prim-path=

HIP 标准并行算法加速库所需的 rocPrim 路径,用于隐式包含 rocPrim 库

754. --hipstdpar-thrust-path=

HIP 标准并行算法加速库所需的 rocThrust 路径,用于隐式包含 rocThrust 库

755. --hipstdpar

为标准并行算法启用 HIP 加速

756. -H

显示头文件包含和嵌套深度

757. -I-

将所有之前的 -I 标志限制为双引号包含,并从包含路径中移除当前目录

758. -iapinotes-modules

将模块名称引用的目录添加到 API 注释搜索路径

759. -ibuiltininc

即使在 -ibuiltininc 之前或之后使用 -nostdinc,也启用内置 #include 目录。在禁用该选项后使用 -nobuiltininc

760. -idirafter

将目录添加到 AFTER 包含搜索路径

761. -iframeworkwithsysroot

将目录添加到 SYSTEM 框架搜索路径,绝对路径相对于 -isysroot

762. -iframework

将目录添加到 SYSTEM 框架搜索路径

763. -imacros

在解析前包含文件中的宏

764. -include-pch

包含预编译头文件

765. -include

在解析前包含文件

766. -index-header-map

将下一个包含目录(-I 或 -F)设置为索引器头文件映射

767. -iprefix

设置 -iwithprefix/-iwithprefixbefore 前缀

768. -iquote

将目录添加到 QUOTE 包含搜索路径

769. -isysroot

设置系统根目录(通常为 /)

770. -isystem-after

将目录添加到 SYSTEM 包含搜索路径的末尾

771. -isystem

将目录添加到 SYSTEM 包含搜索路径

772. -ivfsoverlay

将文件描述的虚拟文件系统覆盖在真实文件系统上

773. -iwithprefixbefore

将目录设置为包含前缀的包含搜索路径

774. -iwithprefix

将目录设置为带前缀的系统包含搜索路径

775. -iwithsysroot

将目录添加到系统包含搜索路径,绝对路径相对于 -isysroot

776. -I

将目录添加到包含搜索路径列表的末尾

777. --libomptarget-amdgcn-bc-path=

libomptarget-amdgcn 位码库的路径

778. --libomptarget-amdgpu-bc-path=

libomptarget-amdgcn 位码库的路径

779. --libomptarget-nvptx-bc-path=

libomptarget-nvptx 位码库的路径

780. -L

将目录添加到库搜索路径

781. -mabi=quadword-atomics

在 AIX 上启用四字原子 ABI (仅限 AIX PPC64)。使用 lqarx/stqcx 指令。

782. -mabicalls

启用 SVR4 样式的位置无关代码(仅限 Mips)

783. -maix-shared-lib-tls-model-opt

对于随主程序加载的共享库,在函数级别将本地动态访问更改为初始执行访问(仅限 AIX 64 位)。

784. -maix-small-local-dynamic-tls

为本地动态 TLS 变量生成更快的访问序列,其中 TLS 基地址的偏移量被编码为立即数操作数(仅限 AIX 64 位)。此访问序列不适用于大于 32KB 的变量。

785. -maix-small-local-exec-tls

为本地执行 TLS 变量生成更快的访问序列,其中 TLS 基地址的偏移量被编码为立即数操作数(仅限 AIX 64 位)。此访问序列不适用于大于 32KB 的变量。

786. -maix-struct-return

返回内存中的所有结构体(仅限 PPC32)

787. -malign-branch-boundary=

指定边界大小以对齐分支

788. -malign-branch=

指定要对齐的分支类型

789. -malign-double

将结构体中的双精度数对齐为两个字(仅限 x86)

790. -maltivec

启用 AltiVec 向量初始化器语法

791. -mamdgpu-ieee

设置预期默认浮点模式寄存器中的 IEEE 位。支持异常标志收集、静默和传播信号 NaN 输入的浮点操作码,符合 IEEE 754-2008 标准。此选项会更改 ABI。(仅限 AMDGPU)

792. -mamdgpu-precise-memory-op

启用精确内存模式(仅限 AMDGPU)

793. -mapx-features=

启用 APX 功能

794. -mapx-inline-asm-use-gpr32

允许在 APX 的内联汇编中使用 GPR32

795. -march=

获取目标可用架构列表,请使用“-mcpu=help”

796. -marm64x

链接为混合 ARM64X 映像

797. -mbackchain

在 System Z 上通过反向链链接堆栈框架

798. -mbranch-protection=

强制执行间接分支和函数返回的目标

799. -mbranches-within-32B-boundaries

将选定的分支(fused、jcc、jmp)对齐在 32 字节边界内

800. -mcabac

启用 CABAC 指令

801. -mcmse

允许使用 CMSE(Armv8-M 安全扩展)

802. -mcode-object-version=

指定代码对象 ABI 版本。默认为 5。(仅限 AMDGPU)

803. -mconstructor-aliases

启用在可能的情况下将完整的构造函数和析构函数以别名形式发出。

804. -mcpu=

如需查看目标可用 CPU 的列表,请使用“-mcpu=help”

805. -mcrbits

控制 PowerPC 上的 CR 位跟踪功能。“-mcrbits”(启用 CR 位跟踪支持)是 POWER8 及以上版本以及所有其他 CPU(应用优化后,-O2 及以上版本)的默认设置。

806. -mcrc

允许使用 CRC 指令(仅限 ARM/Mips)

807. -mcumode

指定 CU 波前执行模式(仅限 AMDGPU)

808. -mdaz-ftz

在程序启动时全局设置浮点控制寄存器中的非正规数为零 (DAZ) 和清零 (FTZ) 位。

809. -mdefault-visibility-export-mapping=

默认可见性和导出之间的映射。

810. -mdouble=

强制双精度浮点数为

811. -MD

写入包含用户和系统头文件的 depfile。

812. -meabi

设置 EABI 类型(默认值取决于三元组)。

813. -membedded-data

即使常量满足 -G

814. -menable-experimental-extensions

启用实验性的 RISC-V 扩展。

815. -mexec-model=

执行模型(仅限 WebAssembly)

816. -mexecute-only

禁止生成对代码段的数据访问(仅限 ARM)

817. -mextern-sdata

如果外部定义的数据满足 -G

818. -mfentry

在函数入口处插入对 fentry 的调用(仅限 x86/SystemZ)

819. -mfix-cmse-cve-2021-35465

解决 VLLDM 勘误表 CVE-2021-35465(仅限 ARM)

820. -mfix-cortex-a53-835769

解决 Cortex-A53 勘误表 835769(仅限 AArch64)

821. -mfix-cortex-a57-aes-1742098

解决 Cortex-A57 勘误表 1742098(仅限 ARM)

822. -mfix-cortex-a72-aes-1655431

解决 Cortex-A72 勘误表 1655431(仅限 ARM)

823. -mforced-sw-shadow-stack

启用影子堆栈时强制使用软件影子堆栈

824. -mfp32

使用 32 位浮点寄存器(仅限 MIPS)

825. -mfp64

使用 64 位浮点寄存器(仅限 MIPS)

826. -mframe-chain=

选择用于发出帧记录的帧链模型(仅限 Arm)。

827. -mfunction-return=

将返回值替换为跳转到 ``__x86_return_thunk`` 的跳转(仅限 x86,否则会出错)

828. -MF

将 -MMD、-MD、-MM 或 -M 的 depfile 输出写入

829. -mgeneral-regs-only

生成仅使用通用寄存器的代码(仅限 AArch64/x86)

830. -mglobal-merge

启用全局变量合并

831. -mgpopt

对已知位于小型数据段 (MIPS) 中的符号使用 GP 相对访问

832. -mguard=

启用或禁用控制流保护检查和保护表生成

833. -MG

将缺失的头文件添加到 depfile

834. -mharden-sls=

选择直线推测强化范围(仅限 ARM/AArch64/X86)。

835. -mhvx-ieee-fp

启用 Hexagon HVX IEEE 浮点

836. -mhvx-length=

设置 Hexagon 向量长度

837. -mhvx-qfloat

启用 Hexagon HVX QFloat 指令

838. -mhvx=

启用 Hexagon 矢量扩展

839. -mhvx

启用 Hexagon 矢量扩展

840. -miamcu

使用 Intel MCU ABI

841. -mignore-xcoff-visibility

在 AIX 操作系统中不发出汇编代码的可见性属性,或在 XCOFF 目标文件中将所有符号设置为“未指定”可见性

842. --migrate

运行迁移器

843. -mincremental-linker-compatible

(integrated-as) 生成可与增量链接器一起使用的目标文件

844. -mindirect-branch-cs-prefix

为调用添加 cs 前缀,并为间接 thunk 添加 jmp

845. -mindirect-jump=

更改间接跳转指令以抑制推测

846. -mios-version-min=

设置 iOS 部署目标

847. -MJ

为每个输入写入编译数据库条目

848. -mlasx

启用龙芯高级 SIMD 扩展 (LASX)。

849. -mlink-builtin-bitcode-postopt

在优化流水线后链接内置位码

850. -mllvm=

-mllvm 的别名

851. -mllvm

用于转发到 LLVM 选项处理的附加参数

852. -mlocal-sdata

将 -G 行为扩展为对象本地数据 (MIPS)

853. -mlong-calls

生成具有扩展寻址能力的分支,通常通过间接跳转实现。

854. -mlong-double-128

强制长双精度数为 128 位

855. -mlong-double-64

强制长双精度数为 64 位

856. -mlong-double-80

强制长双精度数为 80 位,填充至 128 位用于存储

857. -mlr-for-calls-only

不将 LR 寄存器分配用于通用用途,仅用于调用。(仅限 AArch64)

858. -mlsx

启用龙芯 SIMD 扩展 (LSX)。

859. -mlvi-cfi

仅启用负载值注入 (LVI) 的控制流缓解措施

860. -mlvi-hardening

启用负载值注入 (LVI) 的所有缓解措施

861. -mmacos-version-min=

设置 macOS 部署目标

862. -mmadd4

启用 4 操作数 madd.s、madd.d 及相关指令的生成。

863. -mmark-bti-property

将带有 BTI 的 .note.gnu.property 添加到汇编文件(仅限 AArch64)

864. -MMD

编写包含用户头文件的 depfile

865. -mmemops

启用 memop 指令的生成

866. -mmlir

转发给 MLIR 选项处理的附加参数

867. -mms-bitfields

设置默认结构布局以兼容 Microsoft 编译器标准

868. -mmsa

启用 MSA ASE(仅限 MIPS)

869. -mmt

启用 MT ASE(仅限 MIPS)

870. -MM

与 -MMD 类似,但也隐含 -E 并默认写入标准输出

由于篇幅有限,请看下一章教程!

展开阅读全文
评论
收藏
电脑
黑客
网络安全
渗透测试
Linux
黑客教程
Kali Linux
黑客工具
模糊测试
aflplusplus
热门评论