C++ ファイルから DWARF 情報を分析しているプロジェクトがあります。私のシステムは単純な C++ ファイルに対してはうまく機能しますが、#include を追加し始めると、大量の余分な (そして通常は不要な) コードがダンプされるため、システムがめちゃくちゃになります。標準ライブラリのデバッグ情報を生成しないようにコンパイラ (g++) に指示する方法はありますか? コードをデバッグするときに、IDE が「ソース コードが利用できません」と表示するチャンクがあるため、私はそう思います。
1 に答える
0
標準ライブラリのデバッグ情報を生成しないようにコンパイラ (g++) に指示する方法はありますか?
「標準ライブラリ」と言うとき、ほとんどのコードがヘッダー ファイルにある STL を意味する可能性が高く、そのためSTL コードがプログラムに含まれます。
いいえ、一部のデバッグ情報を生成するように GCC に指示する方法はありませんが、特定の翻訳単位でコンパイルされるすべてのソース コードではありません。
では、デバッグ情報が IDE で部分的にしか利用できない場合があるのはなぜですか?
STL とは異なり、他のほとんどのライブラリのコードは、ヘッダー ファイルではなく#include
、実際のリンク可能なライブラリにあります (つまり、異なる翻訳単位のセットで、一緒にアーカイブされるlibfoo.a
か、一緒にリンクされlibfoo.so
ます)。これらのリンク可能なライブラリは、さまざまなフラグでコンパイルされる場合があり、多くの場合、デバッグの有無にかかわらず最適化を使用してコンパイルされます。
于 2013-08-25T06:50:41.280 に答える