1

c++ でベクターに push_back 関数を使用しようとしています。正確な理由を見つけるために gdb を実行すると、セグ フォールトが発生します。

私は次のようになります。

$1={px = 0xbfffe9c4, pn = { pi_ = 0x8049c0b}}

私は gdb の経験があまりなく、この特定の問題に関連するものをオンラインで見つけることができません。

4

1 に答える 1

3

私の魔法のボールは、 a の逆参照中にクラッシュしたことを示していますshared_ptr。メンバーをたどってくださいpx。これは、関心のある実際のポインター値であるためです。たとえば、次のことを試すことができます。

print $1.px

ポインタが有効なメモリ領域を指している場合:

print *$1.px

デバッガーは多くのgdb情報を提供しますが、より有用なもののいくつか: backtraceupdowninfo localsおよびマルチスレッドの場合はthread apply all backtrace. ライブでデバッグする場合は、もちろんbreakpointnextstepおよびが必要continueです。gdb詳細については、 のヘルプを参照してください。gdbマニュアルはオンラインですぐに入手できます。

于 2012-06-26T00:57:04.553 に答える