क्रॉस-संकलित Valgrind का उपयोग करना


12

मैंने Valgrind ट्रंक से स्रोतों को डाउनलोड किया है और इसे ARM926 (ARMv5t आर्किटेक्चर) द्वारा संचालित एक एम्बेडेड लिनक्स सिस्टम (मोंटाविस्टा लिनक्स) पर उपयोग करने के लिए बनाया है। मेरे द्वारा किए गए कुछ एप्लिकेशन की जांच करने के लिए जब तक मैंने इसे चलाने की कोशिश नहीं की, तब तक सब कुछ ठीक रहा; वेलग्रिंड मुझे बताता है:

"वेलग्राइंड: प्लेटफ़ॉर्म 'आर्म-लिनेक्स' के लिए टूल 'मेमचेक' शुरू करने में विफल: ऐसी कोई फ़ाइल या निर्देशिका नहीं"।

किसी अन्य उपकरण को चलाने की कोशिश करने से एक ही संदेश मिलता है। के लिए मेकअप स्थापित मैं जो एनएफएस के माध्यम से रखा जाता है एम्बेडेड सिस्टम के फाइल सिस्टम की ओर इशारा करते उपसर्ग विकल्प का इस्तेमाल किया (जैसे उपसर्ग = / घर / NFS_mounted / opt / valgrind)। मैंने इंस्टॉलेशन लोकेशन और वहां मौजूद लिबर डायरेक्टरी को चेक किया जिसमें उचित टूल्स हैं; मैंने Valgrind के लिए इसी pkgconfig फ़ाइल की भी जाँच की और यह ठीक प्रतीत होता है इसलिए मैं अभी क्लूलेस हूँ और यह पता नहीं लगा सकता कि क्या गलत हो रहा है। 2 प्रश्न:

  1. क्या क्रॉस-संकलित वैलेग्रिंड का उपयोग करना / स्थापित करना सही है? हो सकता है कि मैं सेटअप के संबंध में कुछ गलत कर रहा हूं, या हो सकता है कि मेजबान प्रणाली में कुछ ऐसा है जो मुझे याद आ रहा है (gdb / gdbserver)।
  2. क्या किसी ने इसे एआरएम आर्किटेक्चर पर चलाने की कोशिश की है? मुझे पता है कि समर्थन काफी हाल ही में हुआ है इसलिए मैं सोच रहा हूं कि क्या मुझे अच्छे परिणाम मिल सकते हैं।

जवाबों:


15

इस कमांड को अपने टारगेट डिवाइस में रन करें

export VALGRIND_LIB=~/valgrind/lib/valgrind/

कहाँ ./valgrindस्थापित निर्देशिका पथ (में दिया गया है ./configure)


4

समस्या यह है कि 'वेलग्राइंड' वास्तविक जाँच को चलाने के लिए एक अलग निष्पादन योग्य की तलाश में है। जब आप इसे कॉन्फ़िगर करते हैं तो यह आपके द्वारा निर्दिष्ट पथ का उपयोग करता है, जो लक्ष्य पर समान पथ नहीं है।

आपको अपने लक्ष्य पर एक सिम्लिंक / होम / NFS_mounted बनाकर पुष्टि करने में सक्षम होना चाहिए जो '/' की ओर इशारा करता है।


उस रास्ते की तलाश कैसे होती है? Pkgconfig में सही लक्ष्य पथ समाहित है, जहां से इसे लेने की कोशिश की जाती है?
celavek

मुझे लगता है कि इसे संकलित किया गया है ।/configure स्क्रिप्ट एक config.h हैडर फ़ाइल उत्पन्न करती है, जिसमें उपसर्ग पथ होना चाहिए।
क्रिस्टोफ़ प्रोवोस्ट

2

VALGRIND_LIB को amd64-linux निर्देशिका की मूल निर्देशिका में रखें। उदाहरण के लिए:

export VALGRIND_LIB=/u/gallinar/downloaded/valgrind-3.2.3/.in_place

इसने आज मेरे लिए काम किया :)।


मुझे .in_placeफ़ोल्डर में याद आ रही है।
आर्मेनबी

0

VALGRIND_LIB को उस फ़ोल्डर की ओर इशारा करना होगा जिसमें मेमेकिट टूल और अन्य आश्रित x संकलित लिबास हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.