-Wall

使用它能够使GCC产生尽可能多的警告信息

-Werror

它要求GCC将所有的警告当成错误进行处理

-g 和 -ggdb

他们都是令 gcc 生成调试信息,但是它们也是有区别的
        -g
        该选项可以利用操作系统的“原生格式(native format)”生成调试
        信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息
        -ggdb
        使 GCC 为 GDB 生成专用的更为丰富的调试信息,但是,此时就不能用其
        他的调试器来进行调试了 (如 ddx)
        -g 和 -ggdb 也是分级别的
        -g2
        这是默认的级别,此时产生的调试信息包括扩展的符号表、行号、局部
        或外部变量信息。
        -g3
        包含级别2中的所有调试信息,以及源代码中定义的宏
        -g1
        级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯
        跟踪和堆栈转储之用。回溯跟踪指的是监视程序在运行过程中的函数调用历
        史,堆栈转储则是一种以原始的十六进制格式保存程序执行环境的方法,两者
        都是经常用到的调试手段。

-rdynamic  -funwind-tables  -fasynchronous-unwind-tables [-fPIC]

backtrace打印需要指定的选项

有些处理器backtrace不显示函数名,则还需要指定-fPIC选项