[ C++で開発 ]

GCC Tips集

Linuxを始めとする各種プラットフォームで広く使用されるコンパイラGCC、そのTipsを集めました。

GCC拡張機能で便利な機能を利用する

関数をdeprecated(非推奨・廃止予定)

廃止予定の既存の関数を呼び出しているコードがあると、コンパイル時に警告を出したいことがあります。

simple.h
#ifndef SIMPLE_H_
#define SIMPEL_H_

__attribute__((deprecated))
void oldFunc();

class Simple {
public:
    __attribute__((deprecated))
    int lessAccurateCalc(int a);
    ...
};

デバッグ機能

デバッガで解析するために必要な情報

stabs形式とDWARF形式が主要なデバッグ情報形式です。

CentOS 5.2/GCC 4.1.2では、デフォルトの-gオプションで生成するデバッグ情報は、DWARF(2? 3?)形式です。

メモ
CentOS 5.2/x86で、GCC-4.1.2のg++で、-gを付けて生成したオブジェクトファイルと、-ggdbを付けて生成したオブジェクトファイル、および-gdwarf-2を付けて生成したオブジェクトファイルは同一でした。一方、-gstabsを付けて生成したオブジェクトファイルは上記と異なります(サイズも大きい)。-gstabs+を付けると、さらに違うオブジェクトファイルが生成されました。

DWARF-2形式

リンク

Web