c++ でベクターに push_back 関数を使用しようとしています。正確な理由を見つけるために gdb を実行すると、セグ フォールトが発生します。
私は次のようになります。
$1={px = 0xbfffe9c4, pn = { pi_ = 0x8049c0b}}
私は gdb の経験があまりなく、この特定の問題に関連するものをオンラインで見つけることができません。
私の魔法のボールは、 a の逆参照中にクラッシュしたことを示していますshared_ptr
。メンバーをたどってくださいpx
。これは、関心のある実際のポインター値であるためです。たとえば、次のことを試すことができます。
print $1.px
ポインタが有効なメモリ領域を指している場合:
print *$1.px
デバッガーは多くのgdb
情報を提供しますが、より有用なもののいくつか: backtrace
、up
、down
、info locals
およびマルチスレッドの場合はthread apply all backtrace
. ライブでデバッグする場合は、もちろんbreakpoint
、next
、step
およびが必要continue
です。gdb
詳細については、 のヘルプを参照してください。gdb
マニュアルはオンラインですぐに入手できます。