1
我有一個包含全局變量分段故障
int ***carg;
共享庫這個變量是在函數初始化
__attribute__((constructor)) void init(void) { carg = generator->get_carg(); }
其中
int*** get_carg();
剛返回預初始化的carg數組。
如果這個庫加載有
計劃接收信號SIGSEGV,分段故障分段故障。在/path/to/project/main.cpp:814
0x00007fffebe05fea中的init()在該幀中
(gdb) print carg $1 = (int ***) 0x0 (gdb) call generator->get_carg() $2 = (int ***) 0xf12410
爲什麼這個分配(一個指針被分配給其它指針)是原因分段故障?我怎樣才能初始化這個變量?
UPD:我還是不知道答案,但是當carg變量被改名了,沒有錯誤。我認爲這個名字還有一個變量,但事實並非如此。
不,get_cargs()沒關係,因爲在這個框架中 '(gdb)print generator-> get_carg()[0] [0] [0]' 正在工作。 (gdb)call generator-> get_cargs()' '(gdb)$ 5' '(gdb)set carg = $'' 這對我來說是令人驚訝的,並且沒有錯誤 – erthalion 2013-04-21 11:14:43