ใช้ Valgrind ที่คอมไพล์แล้ว


12

ฉันได้ดาวน์โหลดแหล่งข้อมูลจากลำต้นของ Valgrind และสร้างขึ้นเพื่อใช้กับระบบ Linux ในตัว (Montavista Linux) ที่ขับเคลื่อนโดย ARM926 (สถาปัตยกรรม ARMv5t) ทุกอย่างเป็นไปด้วยดีจนกระทั่งฉันพยายามเรียกใช้เพื่อตรวจสอบแอปพลิเคชันที่ฉันทำ Valgrind บอกฉัน:

"valgrind: ไม่สามารถเริ่มเครื่องมือ 'memcheck' สำหรับแพลตฟอร์ม 'arm-linux': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว"

การพยายามเรียกใช้เครื่องมืออื่น ๆ จะให้ข้อความเดียวกัน สำหรับการติดตั้งฉันใช้ตัวเลือก --prefix ซึ่งชี้ไปที่ระบบไฟล์ของระบบฝังตัวซึ่งติดตั้งผ่าน NFS (เช่น --prefix = / home / NFS_mounted / opt / valgrind) ฉันตรวจสอบตำแหน่งการติดตั้งและไดเรกทอรีlib ที่นั่นมีเครื่องมือที่เหมาะสม ฉันได้ตรวจสอบไฟล์ pkgconfig ที่เกี่ยวข้องสำหรับ Valgrind แล้วและดูเหมือนว่าจะโอเคฉันเลยไม่รู้จะทำอะไรผิดไป 2 คำถาม:

  1. ถูกต้องหรือไม่ที่จะใช้ / ติดตั้ง Valgrind ที่คอมไพล์ข้ามเช่นนั้น บางทีฉันอาจทำสิ่งผิดปกติเกี่ยวกับการตั้งค่าหรืออาจมีบางอย่างที่เกี่ยวข้องกับระบบโฮสต์ที่ฉันขาดหายไป (gdb / gdbserver เหมือน)
  2. มีใครลองใช้กับสถาปัตยกรรม ARM บ้างไหม? ฉันทราบว่าการสนับสนุนค่อนข้างเร็วดังนั้นฉันสงสัยว่าฉันจะได้รับผลลัพธ์ที่ดีหรือไม่

คำตอบ:


15

เรียกใช้คำสั่งนี้ในอุปกรณ์เป้าหมายของคุณ

export VALGRIND_LIB=~/valgrind/lib/valgrind/

ตำแหน่งที่./valgrindมีการติดตั้งเส้นทางไดเรกทอรี (กำหนดใน./configure)


4

ปัญหาคือ 'valgrind' กำลังมองหาสิ่งที่แตกต่างในการเรียกใช้การตรวจสอบจริง จะใช้เส้นทางการติดตั้งที่คุณระบุเมื่อคุณกำหนดค่าซึ่งไม่ได้เป็นเส้นทางเดียวกับที่เป้าหมาย

คุณควรจะสามารถยืนยันสิ่งนี้ได้โดยสร้าง symlink / home / NFS_mount บนเป้าหมายที่ชี้ไปที่ '/'


มันมองหาเส้นทางนั้นได้อย่างไร? pkgconfig มีพา ธ เป้าหมายที่ถูกต้องดังนั้นจึงลองใช้จากที่ใด
celavek

ฉันคิดว่าคอมไพล์สคริปต์สคริปต์. / config สร้างไฟล์ config.h ซึ่งควรมีเส้นทางคำนำหน้า
Kristof Provost

2

ใส่ VALGRIND_LIB ไดเรกทอรีหลักของไดเรกทอรี amd64-linux เช่น:

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

มันทำงานให้ฉันวันนี้ :)


ฉันหายไปจาก.in_placeในโฟลเดอร์
ArmenB

0

VALGRIND_LIB จะต้องชี้ไปที่โฟลเดอร์ที่มีเครื่องมือ memcheck และ libs x ที่คอมไพล์แล้วอื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.