2015-01-13 5 views
6

私は最初、私はEXEのサイズは10メガバイトに増加したことを見てきたとき、私の顎を落とし、古いアプリケーションをコンパイルしたとき、私は。最近のDelphi XE7をインストール!「制限されたデバッグ情報」とは何ですか? (フル「デバッグ情報」は、巨大なEXEファイルを生成します)

で遊びます'Project options' 'デバッグ情報'を '制限付きデバッグ情報'に設定すると、EXEサイズがDelphi XEによって生成されたEXEに非常に近いものに減少することがわかりました。 Delphi XE7 '制限付きデバッグ情報'デバッグ情報 'は、同じEXEサイズになっているので、Delphi XEから出力されますか?

なぜ、'デバッグ情報 'がEXEを非常に大きくするのですか(XEと比較して)?EXEをコンパイルできません私はデバッググッズ(EurekaLogも必要です)への完全なアクセス権を持ちたいからです。
Embarcaderoのドキュメントには、「制限付き」と完全なデバッグ情報の違いについては何も言及されていません。

EurekaLogのドキュメントは、デルファイの古いバージョンのため、私は新しいオプション(慈悲深く)「制限付きデバッグ情報」または完全なデバッグ情報を使用できるかどうかを明示していません。私は実験する必要があります。

+0

ここには関連する記事がありますが、EXEサイズの問題は扱いません:http://stackoverflow.com/questions/19653475/what-is-the-different-between-limited-debugging-information-and- debug-informa – Ampere

+0

リンカの「デバッグ情報を別のTDSファイルに配置する」オプションを有効にしてみてください。 –

+0

私はEurekaLogがこのように動作するとは思わない。あるいは、おそらく私はTDSファイルも配布するでしょう。とにかく、私はこれを調べます。ありがとう。 – Ampere

答えて

13

「制限付きデバッグ情報」は、Androidターゲティングコンパイラにのみ影響するオプションです。ただし、すべてのコンパイラが同じインタフェースを共有しているため、このオプションはすべてのターゲットに表示されます。各オブジェクト(.o)ファイルにどれだけのデバッグ情報が入るかだけに適用されます。 Android(およびiOS)の場合、デバッグ情報の形式はDWARFです。 DWARFは非常に冗長な形式であり、指定されたユニットのすべてのユニットのすべてのタイプについて、与えられたユニットおよびのすべてのタイプに関する非常に詳細な構造タイプ情報を含めることができます。 「制限されたデバッグ情報」では、使用されているすべてのユニットのタイプ情報はではなく、が生成されます。これは、デバッグ中に一部のフィールドおよびローカル変数が検査可能でない可能性があることを意味します。

最終的な実行ファイルにデバッグ情報が含まれているかどうかは、コンパイラオプションではなく、リンカオプションによって制御されます。リンカーは、使用可能なデバッグ情報をリンクします。 Android用のビルドと「デバッグ情報」が選択されている場合、最終的なイメージはもっと多くの情報を持ち、はるかに大きくなります。

ここでは、Windowsをターゲットにしていると仮定します(あなたは実際にはそうは言えませんが、ここでは私の精神力を使用します)。その場合、「デバッグ情報の制限」と「デバッグ情報"同じことです。 Windowsでは、デバッグ形式は「GIANT」と呼ばれます。あなたは "皮肉"と言うことができますか? DWARFは非常に冗長な形式ですが、Embarcadero(Borlandのもともとの)独自のGIANT形式はよりコンパクトです。サイズの増加は、追加されたランタイム機能からのものであり、おそらくジェネリックのより多くの使用によるものです。

+3

情報ありがとうございます。あまりにも悪いことは、ドキュメントがありません。 –

+0

Allenに感謝します。あなたの最初の文はすでにほとんどすべてを説明しています:) – Ampere

+2

Androidのリンカがすべてのデバッグ情報を実行可能イメージ(実際はAndroidの.so)に挿入しても、その情報は.apkファイルを構築する際に取り除かれます実際にデバイス(またはエミュレータ)に配置されているものです。デバッグの場合、gdbデバッガは.apkにパックされたイメージからデバッグ情報を読み取るのではなく、ハードドライブ上の元のリンクイメージからデバッグ情報を読み込みます。 –

関連する問題