很久以後我又回到C++了,我想用樣式來做,所以我潛伏在libCinder中,開始做我之前很少做的事情(和即使那時我也因爲很多原因而喜歡Qt)。這個計劃會出什麼問題?隨機EXC_BAD_ACCESS由於我一定忽略了一些東西
事情就是這樣,特別是當我使用調試配置文件和多個安全帶綁在一起(又名調試器)從Xcode內部運行我的代碼時,然後我必須進入狂野和討厭的東西發生:用戶太興奮了,有些東西不夠嚴密,最終我的應用程序崩潰了。
我設法縮小到PilotStudyApp :: draw()函數的肇事者(請參閱代碼https://github.com/Morpheu5/PilotStudy),最有可能在最後一個for循環,通過_activePoints,但我不能確保你可以從BT
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libstdc++.6.dylib 0x914635e4 std::_Rb_tree_increment(std::_Rb_tree_node_base*) + 15
1 org.cinder.PilotStudy 0x000916b3 PilotStudyApp::draw() + 419
2 org.cinder.PilotStudy 0x000c34ad -[CinderView drawRect:] + 125
,你可以看到完全在這裏看到:http://pastebin.com/izZcFy8p
我有一個強烈的感覺,什麼是與我的C++ - 福(或缺乏),所以如果你們可以發現一些我忽略的東西,我會非常感激(因爲我不想去加工,它會覺得要去bac k到幼兒園:)
編輯:我剛想到STL可能不是線程安全的,所以同步或製作本地副本應該可能解決?
STL確實不是線程安全的。如果你想使用多線程的容器,你需要提供同步。 – ymett