मैं एक सी ++ प्रोग्राम लिख रहा हूं जो काम नहीं करता है (मुझे सेगमेंटेशन गलती मिलती है) जब मैं ऑप्टिमाइज़ेशन के साथ संकलित करता हूं (विकल्प-ओ 1, -ओ 2, -ओ 3 , इत्यादि), लेकिन जब मैं अनुकूलन के बिना इसे संकलित करता हूं तो यह ठीक काम करता है।जीसीसी: प्रोग्राम संकलन विकल्प के साथ काम नहीं करता है- ओ 3
क्या कोई मौका है कि त्रुटि मेरे कोड में है? या मुझे लगता है कि यह जीसीसी में एक बग है?
मेरा जीसीसी संस्करण 3.4.6 है।
क्या इस तरह की समस्या के लिए कोई ज्ञात कामकाज है?
मेरे प्रोग्राम के अनुकूलित और अप्रत्याशित संस्करण के बीच गति में एक बड़ा अंतर है, इसलिए मुझे वास्तव में अनुकूलन का उपयोग करने की आवश्यकता है।
यह मेरा मूल मज़ेदार है। एक है कि अनुकूलन का कोई स्तर के साथ ठीक काम करता है और अनुकूलन के किसी भी स्तर के साथ एक विभाजन गलती फेंकता है:
struct distanceToPointSort{
indexedDocument* point ;
distanceToPointSort(indexedDocument* p): point(p) {}
bool operator() (indexedDocument* p1,indexedDocument* p2){
return distance(point,p1) < distance(point,p2) ;
}
} ;
और यह एक अनुकूलन के किसी भी स्तर के साथ दोषरहित काम करता है:
struct distanceToPointSort{
indexedDocument* point ;
distanceToPointSort(indexedDocument* p): point(p) {}
bool operator() (indexedDocument* p1,indexedDocument* p2){
float d1=distance(point,p1) ;
float d2=distance(point,p2) ;
std::cout << "" ; //without this line, I get a segmentation fault anyways
return d1 < d2 ;
}
} ;
दुर्भाग्य से, यह समस्या पुनरुत्पादन करना मुश्किल है क्योंकि यह कुछ विशिष्ट मानों के साथ होता है। मुझे एक हजार से अधिक वैक्टरों में से केवल एक को क्रमबद्ध करने पर सेगमेंटेशन गलती मिलती है, इसलिए यह वास्तव में प्रत्येक वेक्टर के मूल्यों के विशिष्ट संयोजन पर निर्भर करता है।
यह निश्चित रूप से आपके कोड में एक बग है, जीसीसी में नहीं। एक सभ्य उत्तर प्राप्त करने के लिए कुछ कोड या कुछ और जानकारी पोस्ट करें। आप अपने आवेदन में वास्तव में क्या कर रहे हैं, यह कैसे डिज़ाइन किया गया है, "यह अनुकूलन के साथ काम नहीं करता" से अधिक कुछ है :) एसईजीवी मेमोरी या पॉइंटर समस्या इंगित करता है, इसलिए वहां –
शुरू करें मैं ट्रॉल को कॉल करता हूं। यदि मूल पोस्टर इस प्रश्न को लिखने के लिए प्रोग्रामिंग के बारे में पर्याप्त जानता था, तो मूल पोस्टर को प्रश्न का उत्तर पता था। किसी भी कोड नमूने की अनुपस्थिति पर भी विचार करें। –
कोड के बिना, कोई मौका नहीं है कि हम इस पर आपकी सहायता कर सकते हैं। मुझे डर लग रहा है। –