0

ご存知のように、特別な gcc オプションが有効になっていると、デバッグ中に gdb がマクロを展開する可能性があります。しかし、生のソース コードをデバッグするのに比べれば、それほど便利ではありません。

マクロをその場で展開し、gcc がコンパイルする元のソース コードを置き換えるツールがあれば、それは素晴らしいことです。

そのようなツールがない場合は、私が作成します。ここに、コメント用の大まかなアイデアをいくつか示します。

「gcc -E」を使用してソース コードをマクロでコンパイルし、結果をいくつかの一時ファイルに出力し、前処理されたファイルと元のソース ファイルとの間でスマートな差分/比較を行い、展開されたソース コードを抽出し、最終的なソース コードをビルドします。マクロが展開されました

4

1 に答える 1

0

gcc -E を使用して、結果の .i ファイルを編集し、影響を受ける領域の #line ディレクティブを削除することをお勧めします。次に、.i ファイルをコンパイルします。

gcc+gdb は、マクロをインライン関数であるかのようにデバッグするように作成できますが、gcc ではかなりの量の作業になると思います。

于 2013-06-23T02:02:32.883 に答える