2012-01-31 9 views
6

मेरे ऐप प्रिंट कई लाइन:कैसे पता लगाने के लिए "tcmalloc: बड़े alloc ...." की तरह

tcmalloc: large alloc 4294488064 bytes == 0x2b968d8000 @ 0x727432 0x727302 0x727a58 0x75a07d 0x574beb 0x585756 0x5575df 0x5717db 0x57108f 0x58078c 0x302b80610a 
tcmalloc: large alloc 4294488064 bytes == 0x2c97063000 @ 0x727432 0x727302 0x727a58 0x75a07d 0x574beb 0x585756 0x5575df 0x5717db 0x57108f 0x58078c 0x302b80610a 
tcmalloc: large alloc 4294488064 bytes == 0x2b968d8000 @ 0x727432 0x727302 0x727a58 0x75a07d 0x574beb 0x585756 0x5575df 0x5717db 0x57108f 0x58078c 0x302b80610a 

जहां इस संदेश से आता है? क्या इसका मतलब है कि मेरे ऐप में कुछ बग या मेमोरी-रिसाव है? मैं रूट कारण का पता कैसे लगा सकता हूं?

+3

अपने कोड में किसी पंक्ति में ज्ञापन पता लगाने के लिए, addr2line कमांडलाइन टूल का उपयोग करें .. इसे addr2line -e <निष्पादन योग्य नाम के रूप में उपयोग करें> फिर एंटर दबाएं और फिर पता पेस्ट करें और एंटर दबाएं। –

+1

धन्यवाद। इस मामले में, मैं लाइनों के अंत में पता पेस्ट करता हूं, लेकिन "??: 0" – Shawn

+1

प्राप्त करने के लिए आपको इसे -g विकल्प का उपयोग करके संकलित करना होगा। –

उत्तर

7

http://code.google.com/p/gperftools/source/browse/trunk/src/tcmalloc.cc?r=80&redir=1 लाइन 843

देखें आपके आवेदन पर निर्भर करता है - बड़े आवंटन या एक बग नहीं हो सकता है।

किसी भी मामले में - @ चिह्न के बाद भाग एक स्टैक ट्रेस और संदेश

के स्रोत का पता लगाने के लिए इस्तेमाल किया जा सकता दोहराई जाने वाली संख्या (४२९४४८८०६४ जो 4 जी-479,232 या 0x100000000- के बराबर हो रहा है 0x75000) मुझे संदेह है कि मूल आवंटन कॉल को नकारात्मक हस्ताक्षरित मूल्य मिला है और इसे बिना किसी हस्ताक्षरित मान के रूप में उपयोग किया जाता है।

+2

धन्यवाद, यह बहुत उपयोगी है। बग जैसा आपने कहा है, बिना हस्ताक्षरित और हस्ताक्षरित मूल्य के मिश्रण के मिश्रण के कारण – Shawn

1

आप अभी भी प्रक्रिया चला रहे हैं या कोर यह (kill -ABRT) डंप करने में सक्षम है तो आप gdb संलग्न करने के लिए सक्षम होना चाहिए थे और info symbol <address> आदेश चला (<address> त्रुटि संदेश में @ के बाद उन हेक्साडेसिमल संख्याओं में से एक है: 0x727432 ...)।

मेरे मामले में यह एक प्रामाणिक त्रुटि थी।

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