检查和调试时出错

此类别中的选项允许您检测和更正源代码中的问题。 在某些情况下,这些选项可以更改对象代码,增加编译时间,或引入运行时检查以减慢应用程序的执行速度。 此选项描述指示额外检查如何影响性能。

要控制您接收到的有关应用程序行为和性能的信息的数量和类型,请参阅 列表,消息和编译器信息中的选项。

有关调试优化代码的信息,请参阅 XL C/C++ 优化和编程指南

表 1. 错误检查和调试选项
选项名称 等效编译指示名称 描述
-# (-###)(井号) 无。

预览命令行上指定的编译步骤,而不实际调用任何编译器组件。

-qcheck 基于 XL 的前端开始#pragma选项检查

基于 Clang 的前端开始没有。

生成用于执行某些类型的运行时检查的代码。

-qdbgfmt

指定对象文件中调试信息的格式。

基于 XL 的前端开始-qdbxextra(仅限C语言) #pragma 选项 dbxextra

-g 选项一起使用时,指定针对未引用的 typedef 声明、structunionenum 类型定义生成调试信息。

基于 XL 的前端开始-qdpcl 无。

生成基于 IBM® Dynamic Probe Class Library (DPCL) 的工具可用于查看可执行文件结构的符号。

基于 XL 的前端开始-qextchk #pragma 选项 extchk

生成链接时类型检查信息并检查编译时一致性。

-qflttrap (-ftrapping-math) 基于 XL 的前端开始#pragma选项flttrap

基于 Clang 的前端开始没有。

确定在运行时要检测哪些类型的浮点异常。

-qformat (-Wformat) 无。

就可能存在的有关字符串输入和输出格式规范的问题发出警告。

-qfullpath 基于 XL 的前端开始#pragma选项 全路径

基于 Clang 的前端开始无。

-g-qlinedebug 选项一起使用时,此选项会记录使用调试信息编译的对象文件中的源文件和包含文件的完整路径名或绝对路径名,以便调试工具可以正确地找到源文件。

-qfunctrace 无。

调用跟踪例程以跟踪编译单元中指定函数的入口点和出口点。

-g 无。

生成调试信息以供符号调试器使用,并使程序状态可供调试会话在所选源位置使用。

-qhalt (-Werror) 基于 XL 的前端开始#pragma选项停止

基于 Clang 的前端开始没有。

如果编译时消息的最大严重性级别等于或超过您指定的严重性级别,那么将在生成任何对象文件、可执行文件或汇编程序源文件之前停止编译。

基于 XL 的前端开始
-qhaltonmsg
无。

如果生成了指定的错误消息,那么将在生成任何对象文件、可执行文件或汇编程序源文件之前停止编译。

基于 XL 的前端开始
-qheapdebug
无。

启用内存管理函数的调试版本。

基于 XL 的前端开始-qinfo #pragma 选项信息, #pragma 信息

生成或禁止参考消息组。

-qinitauto 基于 XL 的前端开始#pragma选项initauto

基于 Clang 的前端开始没有。

将未初始化的自动变量初始化为特定值,以便进行调试。

-qkeepparm 无。

-O2 或更高级别的优化一起使用时,指定是否在堆栈上存储过程参数。

-qlinedebug 无。

仅为调试器生成行号和源文件名信息。

基于 XL 的前端开始-qmaxerr 无。

当指定的严重性级别或更高级别的错误消息数达到指定的数目时,将停止编译。

基于 XL 的前端开始-qoptdebug 无。

当与高级优化配合使用时,生成包含调试器可读取的已优化伪码的文件。

-qstackprotect (-fstack-protector) 无。

防止将覆盖或损坏堆栈的恶意输入数据或编程错误

基于 XL 的前端开始-qsymtab(仅限C语言) 无。

确定显示在符号表中的信息。

-qsyntaxonly (-fsyntax-only) 无。

在不生成对象文件的情况下执行语法检查。

基于 XL 的前端开始-qwarn0x (C++11) 无。

控制是否通过消息来通知用户有关其程序因从 C++98 标准迁移至 C++11 标准而导致的差异。

基于 XL 的前端开始-qwarn64 无。

支持检查 32 位和 64 位编译器方式之间可能出现的数据转换问题。

XL C/C++ 支持以下选项以实现 GCC 兼容性。 有关这些选项的详细信息,请参阅 GNU Compiler Collection 在线文档,网址为 http://gcc.gnu.org/onlinedocs/请注意,这些 GCC 选项仅在 IBM XL C/C++ for AIX® 16.1(由 xlclang/xlclang + +调用) 的基于 Clang 的前端中受支持。

用于控制诊断消息格式化的 GCC 选项

  • -fansi-escape-codes
  • -fcolor-diagnostics
  • -fdiagnostics-format=[clang|msvc|vi]
  • -fdiagnostics-fixit-info
  • -fdiagnostics-print-source-range-info
  • -fdiagnostic-parsable-fixits
  • -fdiagnostic-show-category=[none|id|name]
  • -fdiagnostics-show-name
  • -fdiagnostics-show-option
  • -fdiagnostic-show-template-tree
  • -fmessage-length
  • -fno-diagnostics-show-caret
  • -fno-diagnostics-show-option
  • -fno-elide-type
  • -fno-show-column
  • -fshow-column
  • -fshow-source-location
  • -pedantic
  • -pedantic-errors
  • -Wambiguous-member-template
  • -Wbind-to-temporary-copy
  • -Wextra-tokens

用于请求或禁止警告的 GCC 选项

  • -fsyntax-only
  • -pedantic
  • -pedantic-errors
  • -w
  • -Wall
  • -Wbad-function-cast
  • -Wcast-align
  • -Wchar-subscripts
  • -Wcomment
  • -Wconversion
  • -Wc++11-compat
  • -Wdelete-non-virtual-dtor
  • -Wempty-body
  • -Wenum-compare
  • -Werror=foo [确切地说,对于无效选项,-Werror=unused-command-line-argument 用于在警告与错误消息之间切换]
  • -Weverything
  • -Wfatal-errors
  • -Wfloat-equal
  • -Wfoo
  • -Wformat
  • -Wformat = n
  • -Wformat=2
  • -Wformat-nonliteral
  • -Wformat-security
  • -Wformat-y2k
  • -Wignored-qualifiers
  • -Wimplicit-int
  • -Wimplicit-function-declaration
  • -Wimplicit
  • -Wmain
  • -Wmissing-braces
  • -Wmissing-field-initializers
  • -Wmissing-prototypes
  • -Wnarrowing
  • -Wno-attributes
  • -Wno-builtin-macro-redefined
  • -Wno-deprecated
  • -Wno-deprecated-declarations
  • -Wno-division-by-zero
  • -Wno-endif-labels
  • -Wno-format
  • -Wno-format-extra-args
  • -Wno-format-zero-length
  • -Wno-int-conversion
  • -Wno-invalid-offsetof
  • -Wno-int-to-pointer-cast
  • -Wno-multichar
  • -Wno-return-local-addr
  • -Wno-unused-result
  • -Wno-virtual-move-assign
  • -Wnon-virtual-dtor
  • -Wnonnull
  • -Woverlength-strings
  • -Woverloaded-virtual
  • -Wpedantic
  • -Wpadded
  • -Wparantheses
  • -Wpointer-arith
  • -Wpointer-sign
  • -Wreorder
  • -Wreturn-type
  • -Wsequence-point
  • -Wshadow
  • -Wsign-compare
  • -Wsign-conversion
  • -Wsizeof-pointer-memaccess
  • -Wstack-protector
  • -Wswitch
  • -Wsystem-headers
  • -Wtautological-compare
  • -Wtype-limits
  • -Wtrigraphs
  • -Wundef
  • -Wuninitialized
  • -Wunknown-pragmas
  • -Wunused
  • -Wunused-label
  • -Wunused-parameter
  • -Wunused-variable
  • -Wunused-value
  • -Wvariadic-macros
  • -Wvarargs
  • -Wvla
  • -Wwrite-strings

其他 GCC 选项

  • -fstack-protector
  • -ftrap-数学