2

私はubuntu12.04を使用しています。私はこれまで、C++スクールプロジェクトのIDEとしてanjutaとcodeliteを使用してきました。ただし、どちらの場合も、1つの問題が発生しました。デバッガーを起動した後、時計のセクションで配列を追加しようとするまで、すべてが正常に機能します。何も表示されず、デバッグを続行しようとするとフリーズし、デバッグセッションを停止する必要があります。変数の監視はうまく機能することを言及する必要があります。

ありがとうございました、

LE:実際、デバッグ機能は大きな配列の場合にのみフリーズします...それはコードライトのバグかもしれません。何か意見はありますか?

4

1 に答える 1

2

変数の監視はうまく機能することを言及する必要があります。

変数にウォッチポイントを設定すると、GDBはおそらくそれを言いますHardware watchpoint N(ただし、IDEがそのメッセージを隠している可能性があります)。

x86プロセッサで8バイトを超えるものにウォッチポイントを設定すると、GDBはハードウェアウォッチポイントを設定できません(x86ハードウェアはそのようなウォッチポイントをサポートしていないため)。GDBは代わりにソフトウェアウォッチポイントを設定します。ソフトウェアウォッチポイントは次のように実装されます。

  1. プログラムをシングルステップ
  2. 値は変わりましたか?いいえ->手順1に進みます。はい:停止します。

ソフトウェアのウォッチポイントは本当に遅いです。を使用してシステムを監視するとtop、GDBが100%のCPUを消費していることに気付くでしょう。

アレイ全体を本当に監視する必要がある場合、この回答は、valgrindを使用してそれを実行する方法を示しています。

于 2012-09-14T16:54:14.363 に答える