c++ - What does this stack trace possibly mean? -
मुझे सी + + का उपयोग करते हुए लिखित अपने अनुप्रयोग में सीगलफ़ॉल्ट समस्या हो रही है और जीसीसी 4.3.2 का उपयोग करके संकलित किया गया है। यह डेबियन 5 64 के तहत चल रहा है
प्रक्रिया में निम्न कोड पंक्ति पर दुर्घटनाग्रस्त हो गया।
# 0 0x00000000007c720f कार्रवाई :: LoadInfoFromDB में (यह = 0x7fae10d38d90) पर। ./../../src/server/Action.cpp:1233 1233 एम_टैंप [टीआईडी] - & gt; स्लिस्ट [एसआईडी] = पीआईटीम;
स्टैक ट्रेस कि मैं कोर डंप से मिला इस प्रकार है:
# 0 0x00000000007c720f कार्रवाई :: LoadInfoFromDB में (यह = 0x7fae10d38d90) पर। ./../../src/server/Action.cpp:1233 आइटमगुईड = & lt; मान ऑप्टिमाइज़ & gt; मद ईंट्री = & lt; मूल्य ऑप्टिमाइज़ किया & gt; PItem = (कक्षा आइटम *) 0x2b52bae0 फ़ील्ड = & lt; मान ऑप्टिमाइज़ & gt; टीआईडी = 1 '\ 001' सिड = 0 '\ 0' परिणाम = (QueryResult *) 0x7fadcae3d8e0 # 1 0x00000000007c7584 कार्रवाई :: DisplayInfo (यह = 0x0, सत्र = 0x7fadbdd44a20) ../../../src/ पर में सर्वर / एक्शन.cpp: 10 9 डेटा = {& lt; बाइटबफर & gt; = {स्थिर DEFAULT_SIZE = 4096, _rpos = 220,043,248, _wpos = 5,469,086, _storage = {& LT; std :: _ Vector_base & LT; अहस्ताक्षरित चार, std :: संभाजक & LT; अहस्ताक्षरित चार & gt; & Gt; & gt; = {_M_impl = {& lt; std :: आबंटक & lt; अहस्ताक्षरित चार & gt; & gt; = {& Lt; __ gnu_cxx :: नया_ऑलोकेटर & lt; अहस्ताक्षरित चार & gt; & gt; = {& Lt; कोई डेटा फ़ील्ड & gt;}, & lt; कोई डेटा फ़ील्ड & gt;}, _M_start = 0x41200000 & lt; पता 0x41200000 सीमा से बाहर & gt ;, _M_finish = 0x0, _M_end_of_storage = 0x7fad00000000 & lt; पता 0x7fad00000000 सीमाओं से बाहर & gt;}}, & lt; कोई डेटा नहीं क्षेत्रों & gt;}}, m_code = 51,152} # 2 0x00000000007d01a3 सत्र :: HandleAction में (यह = 0x7fadbdd44a20, recv_data = @ 0x25d83780) पर ../../../src/server/ActionHandler.cpp:862 pAction = (एक्शन *) 0x0 एक्शनआईडी = 1079 GoGuid = & lt; मूल्य ऑप्टिमाइज़ किया गया & gt;
फ़्रेम # 1 में, क्रिया :: प्रदर्शन इन्फोस
से सत्र :: हैंडलएक्शन
पर pAction
से बुलाया गया था । हालांकि फ़्रेम # 1 शो यह = 0x0
और फ्रेम # 2 शो pAction = (कार्रवाई *) 0x0
।
मुझे समझ में नहीं आ रहा है कि यह क्यों एक दुर्घटना हुई इसका मतलब क्या है? DisplayInfo
किसी रिक्त संदर्भ पर नहीं बुलाया जा सकता!
कोई भी मदद सबसे अधिक सराहना की जाती है।
धन्यवाद
m_tmap [tId] - & gt; स्लिस्ट [sId] = pItem;
अगर यह क्रैश स्थिति है, तो आप गैर-मौजूद डेटा में अनुक्रमण की संभावना रखते हैं। एक आप कहा जाता है - तो m_tmap एक std :: नक्शा
है यह ठीक है - लेकिन आप को सत्यापित किया slist [सिड]
एक वैध सबस्क्रिप्ट
या है? किसी नल (या अन्यथा अमान्य) -कॉन्टर पर सदस्य कार्य और पहली बार दुर्घटना जब आप वस्तु के किसी सदस्य को सीधे एक्सेस कर रहे हैं, भले ही यह कुछ फ़्रेम दूर हो। क्या आप वाकई pAction
नल नहीं हो सकता है?
स्टैक ट्रेस को मान्य नहीं होने की आवश्यकता है। सबसे पहले, आप उन्हें अपने आवेदन में भ्रष्ट कर सकते हैं। दूसरे, कंपोज़र का अनुकूलन करने से यह बहुत दूर होता है कि परिणामी स्टैक निशान विश्वसनीय नहीं होते हैं। अक्षम करने के लिए कंपाइलर ऑप्टिमाइज़ेशन के साथ एक प्रयास करें और अपने सरणी सदस्यता को ठीक करने के लिए जोर दें
का उपयोग करें।
Comments
Post a Comment