1

私は複雑なクラスを持っていますが、デバッグの目的で多かれ少なかれ明示的に、クリーンな印刷メソッドを作成しました。ただし、gdbを使用しているときに実際に使用して印刷するための構文を理解できないようです。基本的に、「myObject->print()」のようなものを入力して印刷メソッドを実行できるようにしたいのですが、代わりに次のエラーが発生します。

プログラムは信号 EXC_BAD_ACCESS を受信しました。メモリにアクセスできませんでした。理由: KERN_INVALID_ADDRESS at address: 0x00000000000000a1 0x00007fff814c0684 in std::ostream::sentry::sentry () デバッグ中のプログラムは、GDB から呼び出された関数内で通知されました。GDB は信号を受信したフレームに残ります。この動作を変更するには、「set unwindonsignal on」を使用します 関数 (wfSamplePath::print_traj(std::ostream&)) を含む式の評価は破棄されます。

ここで、「wfSamplePath」はクラスで、「print_traj」は印刷メソッドです (デフォルト引数として std::cout を使用)。明らかに、私がこれを行うことができると思う方法に何か問題があります。私は xcode 3 内から gdb を使用しています。他のメソッドのいくつかにアクセスできるため、「myObject」は確実にスコープ内にあります。

4

1 に答える 1