2017-07-06 5 views
5

मेरे पास एक क्रैश है जिसे मैं ढूंढने की कोशिश कर रहा हूं, और यहां तक ​​कि एप्लिकेशन को डिबग और निष्पादित करने के रूप में भी निर्माण कर रहा हूं, मुझे कोई प्रतीकात्मक जानकारी नहीं मिलती है।लिनक्स पर स्विफ्ट डिबगिंग - गुम बैकट्रैक

उत्पादन मैं कंसोल पर प्राप्त है:

fatal error: unexpectedly found nil while unwrapping an Optional value 
Current stack trace: 
0 libswiftCore.so     0x00007f1c51ca51c0 swift_reportError + 120 
1 libswiftCore.so     0x00007f1c51cbfbe0 _swift_stdlib_reportFatalError + 62 
2 libswiftCore.so     0x00007f1c51ab9be6 <unavailable> + 1186790 
3 libswiftCore.so     0x00007f1c51c18ead <unavailable> + 2625197 
4 libswiftCore.so     0x00007f1c51ab9be6 <unavailable> + 1186790 
5 libswiftCore.so     0x00007f1c51bd4060 specialized _fatalErrorMessage(StaticString, StaticString, file : StaticString, line : UInt, flags : UInt32) -> Never + 96 
6 myProgram       0x000000000045909e <unavailable> + 364702 
7 myProgram       0x0000000000423f37 <unavailable> + 147255 
8 libdispatch.so      0x00007f1c5276e177 <unavailable> + 278903 
9 libdispatch.so      0x00007f1c52779edd <unavailable> + 327389 
10 libdispatch.so      0x00007f1c5277a890 <unavailable> + 329872 
11 libdispatch.so      0x00007f1c5277c5f4 <unavailable> + 337396 
12 libdispatch.so      0x00007f1c5279aa18 <unavailable> + 461336 
13 libpthread.so.0     0x00007f1c50c6f6ba <unavailable> + 30394 
14 libc.so.6       0x00007f1c4f7b9370 clone + 109 
Illegal instruction (core dumped) 

मैं बस इस जानकारी पर विस्तार करने के लिए किसी भी तरह से नहीं मिल रहा है, और हालांकि मैं एक मानचित्र फ़ाइल के माध्यम से देख जा सकते हैं। मुझे लगता है कि हम आधुनिक टूलिंग के साथ अब उस क्षेत्र से बहुत आगे चले गए हैं।

क्या किसी के पास कोई पॉइंटर्स है, या वास्तव में यह जानता है कि इसमें अधिक जानकारी के साथ निर्माण कैसे करें।

उबंटू 16.04, स्विफ्ट 3.1.1

+0

ए [एमसीवी] सहायक होगा। –

+1

दुर्घटना के समय आपको क्या लगता है कि कोड क्या चल रहा है? उस कोड को दिखाएं ताकि समुदाय सहायता कर सके। – MwcsMac

+0

@ मार्टिनआर, मैं जो पूछ रहा हूं उसके बारे में कुछ गलतफहमी हो सकती है। मैं पूछ रहा हूं कि मुझे डिबग बिल्ड में प्रतीकात्मक जानकारी जोड़ने का कोई तरीका है या मुझे मुझे कुछ काम करने के लिए कुछ स्टैक बैकट्रैक या कुछ भी देने के लिए। अफसोस की बात यह एक समस्या नहीं है जो प्रदर्शन उदाहरण प्रतिमान फिट बैठता है। अगर मैं एक पुनरुत्पादित उदाहरण बनाने में सक्षम था तो मैं इसे पहले से ठीक करने में सक्षम होता। –

उत्तर

6

तो, दुर्भाग्य से इस lldb में एक बग, जो ELF निष्पादनयोग्य में स्थानीय प्रतीकों का उपयोग करता प्रतीत हो रहा है, और dladdr उन्हें Linux प्लेटफार्मों पर नहीं मिल रहा।

बग रिपोर्ट यहाँ देखें: https://bugs.swift.org/browse/SR-755

ध्यान:

अच्छी खबर है, हालांकि, वहाँ एक bash स्क्रिप्ट जो आप के लिए सब काम करता है। निर्देश के मामूली हैं, लेकिन यह आप क्या करने की जरूरत है:

डाउनलोड इस स्क्रिप्ट: https://raw.githubusercontent.com/apple/swift/master/utils/symbolicate-linux-fatal

Exectute अपने क्रैश होने देता है।

$ myApp &> crash.log 

फिर स्क्रिप्ट निष्पादित करें।

$ ./symbolicate-linux-fatal myApp crash.log 

इससे मुझे कोई अंत नहीं हुआ है।

+0

जब मैं उबंटू 16.04 पर 'स्विफ्ट टेस्ट' चलाने की कोशिश करता हूं तो मैंने इस मुद्दे से मुलाकात की। मुझे निष्पादन योग्य कहां मिल सकता है कि कुछ 'myApp' पसंद करता है? –

संबंधित मुद्दे