मैं कुछ बिंदुओं के दौरान कॉल ट्रेस लॉग करना चाहता हूं, जैसे असफल दावे, या बेजोड़ अपवाद।कोको में कंसोल/लॉग में स्टैक ट्रेस कैसे प्रिंट करते हैं?
उत्तर
NSLog(@"%@",[NSThread callStackSymbols]);
यह कोड किसी भी धागे पर काम करता है।
This आपको बहुत कुछ बताता है कि क्या करना है।
#import <ExceptionHandling/NSExceptionHandler.h>
[[NSExceptionHandler defaultExceptionHandler]
setExceptionHandlingMask: NSLogUncaughtExceptionMask |
NSLogUncaughtSystemExceptionMask |
NSLogUncaughtRuntimeErrorMask]
नोट –
अपवाद के लिए, आप यह करने के लिए अपवाद के userInfo शब्दकोश की NSStackTraceKey सदस्य का उपयोग कर सकते हैं:
अनिवार्य रूप से आप लॉग इन करने से निपटने के अनुप्रयोगों अपवाद की तरह कुछ स्थापित करने के लिए की जरूरत है। ऐप्पल की वेबसाइट पर Controlling a Program's Response to Exceptions देखें।
कोको पहले ही कंसोल के लिए अपरिपक्व अपवादों पर स्टैक ट्रेस लॉग करता है हालांकि वे केवल कच्चे मेमोरी पते हैं। यदि आप कंसोल में प्रतीकात्मक जानकारी चाहते हैं तो ऐप्पल से कुछ sample code है।
यदि आप अपने कोड में एक मनमानी बिंदु पर एक स्टैक ट्रेस उत्पन्न करना चाहते हैं (और आप तेंदुए पर हैं), बैकट्रैक मैन पेज देखें। तेंदुए से पहले, आपको वास्तव में कॉल स्टैक के माध्यम से खोदना पड़ा था।
आने के लिए, हालांकि है कि यह केवल एक पंजीकृत अपवाद संचालक के भीतर (नहीं, जैसे, एक @catch ब्लॉक में) काम करेंगे स्पष्ट रूप से आईओएस 4 में उपलब्ध है लेकिन 3.2 नहीं। यहाँ मैं क्या करता था, बेशर्म पश्व-अनुरेखन आदमी पेज से कॉपी किया है: # शामिल
हैंडलएक्सप्शन में बुलाया जाने पर यह हैंडलर फ़ंक्शन के पीछे ट्रेस लिखता है, जबकि [एनएसईएक्सप्शन कॉलस्टैकसिंबल्स] उस स्थान के ढेर को दिखाता है जहां अपवाद उठाया गया है। लेकिन अगर आप "बैकट्रैक (...)" को प्रतिस्थापित करते हैं: "एनएसएआरएआरएआर एआर = [पूर्व कॉलस्टैकरेटर्न एड्रेस्रेस]; int frames = arr.count; (i = 0; i
N13 के जवाब फ्लॉप काफी काम - मैं इसे थोड़ा संशोधित के साथ इस
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
int retval;
@try{
retval = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
@catch (NSException *exception)
{
NSLog(@"Gosh!!! %@", [exception callStackSymbols]);
@throw;
}
return retval;
}
}
- 1. आउटपुट विंडो में प्रिंट स्टैक ट्रेस
- 2. सी ++ (एमएसवीसी) में स्टैक ट्रेस प्रिंट करना?
- 3. मैं ग्रोवी स्टैक ट्रेस कैसे प्रिंट करूं?
- 4. अपवाद के स्टैक ट्रेस को प्रिंट करें
- 5. प्रिंट पायथन स्टैक ट्रेस उठाए बिना अपवाद
- 6. स्टैक ट्रेस
- 7. स्टैक ट्रेस
- 8. स्टैक ट्रेस
- 9. "स्टैक ट्रेस
- 10. स्टैक ट्रेस
- 11. आप लॉग में एक पूर्ण स्टैक ट्रेस कैसे लिखते हैं?
- 12. AggregateException में TaskCanceledException में स्टैक ट्रेस
- 13. स्टैक ट्रेस (रिलीज) में गलत रेखा संख्या
- 14. किसी अन्य धागे से एक स्टैक ट्रेस प्रिंट करना
- 15. जावास्क्रिप्ट स्टैक ट्रेस से जावा वास्तविक स्टैक ट्रेस ढूंढना
- 16. NullPointerException स्टैक ट्रेस डीबग एजेंट
- 17. "यह" पॉइंटर स्टैक ट्रेस
- 18. फिर से उठाते हैं और स्टैक ट्रेस
- 19. BuildException/ExitStatusException स्टैक ट्रेस
- 20. ऑब्जेक्टिव-सी स्टैक ट्रेस
- 21. सामान्य निष्पादन में .NET में स्टैक ट्रेस कैसे प्राप्त करें?
- 22. स्टैक ट्रेस 3
- 23. जावा में स्टैक ट्रेस के बिना अपवाद
- 24. सी # स्टैक ट्रेस
- 25. जावास्क्रिप्ट अपवाद स्टैक ट्रेस
- 26. सी # में अपवाद के स्टैक ट्रेस को कैसे प्रारूपित करें?
- 27. स्टैक ट्रेस त्रुटि
- 28. node.js में गहरे स्टैक ट्रेस को आउटपुट कैसे करें?
- 29. जावा प्रोग्राम में स्टैक ट्रेस पीढ़ी को कैसे अक्षम करें?
- 30. एक स्टैक ट्रेस को एक स्ट्रिंग में बदलें?
मैक ओएस एक्स 10.6 में नया, जो तब मौजूद नहीं था जब इस सवाल को मूल रूप से पूछा गया था। प्री-हिम-तेंदुए के लिए, 'बैकट्रैक' और 'बैकट्रैस_सिम्बोल्स' फ़ंक्शंस का उपयोग करें; बैकट्रैक (3) मैनपेज देखें। –
आईओएस में भी काम करता है। –
केवल आईओएस 4.0 और उसके बाद के संस्करण पर। – Danra