2012-06-26 116 views
1

我想在C++中使用push_back函數作爲向量。 我得到一個seg故障,當我跑gdb找到確切的原因。瞭解gdb輸出

我收到以下內容。

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

我對gdb沒有太多經驗,也無法在線找到與此特定問題相關的任何內容。

+3

你明白了嗎? –

+0

[如何獲取gdb中數據成員的值?](http://stackoverflow.com/questions/10814170/how-to-get-value-of-a-data-member-in-gdb) –

回答

2

我的魔球告訴我你墜毀了而引用了shared_ptr。請關注px成員,因爲這是您感興趣的實際指針值。例如,你可以嘗試:

print $1.px 

,如果將光標指向一個有效的存儲區:

print *$1.px 

gdb調試器會爲您提供了大量的信息,但是一些比較有用東西:backtrace,up,down,info locals,如果你是多線程的,thread apply all backtrace。如果您正在進行現場調試,那麼您當然需要breakpointnext,stepcontinue。您應該可以使用gdb的幫助來獲得更多信息,並且gdb manual可以在線獲取。