2

私は日食にかなり慣れていないので、他の人にとっては明白に見えるかもしれないことは、私には謎であり、もちろん申し訳ありません。C/C++ 開発者向けの Eclipse IDE (バージョン: Kepler Service Release 1、ビルド ID: 20130919-0819、Win 7 64 ビット) と MinGW ツールチェーンでプロジェクトをビルドしているときに、デバッガー変数ビューでいくつかのことを表示したくありません。次のように、構造内に構造を定義するところから始まります。

typedef     struct
{
    int i1;
    int i2;
}ts;


typedef struct
{
    int i;
    ts  s1;
    ts  s2;
}t_mystruct;

デバッガーの変数ビューでこれを取得します。

ここに画像の説明を入力

それ以外の:

ここに画像の説明を入力

私は比較的多くのことを (Google と stackoverflow のおかげで) eclipse が今まで私に与えたすべての頭痛の種で行うことができましたが、これは少し難しいようで、Google でさえこれについて多くを語らないでしょう。ですから、私のような日食の初心者だけがそこで問題を抱えている可能性があることは、新しいか、明らかです。


2 番目の質問は、なぜ s1 構造体のメンバーを表示したいのに空のスペースがあるのか​​ということです。私が開いて表示する最初の構造を常に好むようで、2番目の構造は常に空白です-これは可能な限り便利ではありません:(同じことがメモリビューにも当てはまります-ネストされた構造メンバーの場合誤った/不明なアドレスのため、メモリ ビューを開かないでください。

デバッガーはこれらの構造で何らかの解析の問題を抱えているはずだと思いますが、残念ながら、どのスレッドを最初に引っ張るべきかわかりません。

完全なプロジェクト コードへのリンク。

4

3 に答える 3

2

同僚のおかげで、GDB (DSF) の代わりに「Standard Create Process Launcher」を使用すると、バグのない (おそらくほとんど) デバッグ セッションを行う機会が得られることがわかりました。

ここに画像の説明を入力

なぜ他のランチャーを使用する必要があるのか​​ わからない限り、私はそれで暮らすことができます.

于 2013-10-28T10:54:32.997 に答える
1

これは完全な答えではありませんが、役に立つと思われるいくつかのテスト結果:

デフォルトのツールチェーン(Linux GCC)を使用して、Linux(Ubuntu)のKepler SR1で例を試してみましたが、そこではうまく機能しているようです:Linuxで展開された変数

しかし、Windows 8 の Kepler SR1 では、「メンバーなし」と「空のスペース」の両方の問題があります。(mydat).i2何らかの理由で、間違った式 (の代わりに)を評価しようとし(mydat).s2.i2、対応する応答を gdb から受け取ります (「i2 という名前のメンバーはありません」)。

これは、コンソールで gdb を使用した小規模なテストであり、期待される結果が得られます: gdb console test (最後の 2 つのコマンドを参照)

Eclipse の Windows 版の UI バグか何かのようです。

于 2013-10-21T08:57:21.037 に答える
0

GDB (DSF) の代わりに「Standard Create Process Launcher」を使用するという、Sangesi から提供された回答が機能することを確認できます。(まだ十分な評判ポイントがないため、彼の回答に投票したりコメントしたりすることはできません。)

Windows 7、CDT v8.0.2、Cygwin、gdb v7.6.50 で Eclipse Indigo を使用して検証済み。

于 2014-02-13T09:37:24.737 に答える