我的代碼中存在分段錯誤,因此我在可疑方法中放置了很多cout來本地化。分段錯誤之前丟失了cout
bool WybierajacyRobot::ustalPoczatekSortowania(){
cout << "ustal poczatek sortowania: " << poczatekSortowania << endl ;
list<Pojemnik>::iterator tmp;
cout << "LOL"; // <-- this cout doesn't print when segfault
if (!poczatekSortowania){ // <- T1
cout << "first task" ;
tmp = polka.begin();
}
else{ // <-- T2
cout << " second task " ;// <-- this cout doesn't print when segfault
tmp = ostatnioUlozony;
cout << " debug cout " ; // <-- this cout doesn't print when segfault
++tmp; // <-- segfault
} ...
如果方法是調用,並且沒有段錯誤,那麼每個從T1開始的cout和之前的打印。 在行++ tmp是段錯誤,因爲ostatnioUlozony爲NULL,當方法轉到T2時,每個cout沒有先打印。爲什麼?我使用Netbeans ang gcc,我在Netbeans中找到了帶有調試的「segfault line」,但在使用之前,我花了一些時間添加cout行和運行程序。
非常感謝,
如果您想跟蹤程序中的執行流程,您應該使用調試器 – 2013-04-07 11:56:35
我這樣做了,但我想知道爲什麼我沒看到cout – 2013-04-07 12:03:31
那麼您應該接受@ sftrabbit的答案。 – 2013-04-07 12:04:58