मैं PHP में एक बड़े (विरासत में) कोडबेस पर काम कर रहा हूं, और त्रुटि Exception thrown without a stack frame in Unknown on line 0
प्रत्येक पृष्ठ के नीचे दिखाई दे रही है। मैं समझता हूं कि त्रुटि का अर्थ क्या है: किसी अपवाद को किसी जगह फेंक दिया जा रहा है इसे फेंक नहीं दिया जा सकता है। मैंने कुछ हद तक इसे ट्रैक करने में भी कामयाब रहा है-यह बंद होने के दौरान बंद हो रहा है।PHP में अज्ञात लाइन 0 पर अज्ञात में एक स्टैक फ्रेम के बिना फेंक दिया गया अपवाद कैसे ट्रैक करूं?
मैंने register_shutdown_function
के साथ पंजीकृत सभी कार्यों में लॉगिंग डाली है, और यह उनमें से किसी भी में नहीं हो रहा है। दुर्भाग्य से, मुझे उससे अधिक जानकारी नहीं मिल रही है; मुझे पता है कि आखिरी शट डाउन फ़ंक्शन सफलतापूर्वक कहने के लिए क्या है, लेकिन मुझे नहीं पता कि उस कोड और उस बिंदु के बीच कौन सा कोड निष्पादित किया जाता है जहां त्रुटि होती है। मुझे यह भी नहीं पता कि PHP मशीनरी का कौन सा हिस्सा अंतिम शट डाउन फ़ंक्शन को कॉल कर रहा है। यह लॉगिंग फ्रेमवर्क, या सत्र ढांचे, या आधा दर्जन चीजों के साथ कुछ हो सकता है।
क्या कोई यह जानता है कि त्रुटि कहां हो रही है, यह निर्धारित करने के लिए कैसे?
क्या विरासत कोड set_error_handler() या set_exception_handler() फ़ंक्शंस का उपयोग करता है? – Fosco
मुझे ऐसा नहीं लगता है। ज़ेन फ्रेमवर्क में, उस फ़ंक्शन का एकमात्र संदर्भ एक डॉकस्ट्रिंग में है। –
PHP 5.3.6 इस समस्या को हल करता है "थोड़ा" कहता है। विवरण के लिए http://www.php.net/archive/2011.php#id2011-03-17-1 देखें। – eisberg