використовуючи перекладений Valgrind


12

Я завантажив джерела з магістралі Valgrind і побудував їх для використання на вбудованій системі Linux (Montavista Linux), що працює на базі ARM926 (архітектура ARMv5t). Все пройшло добре, поки я не спробував запустити його, щоб перевірити якусь програму, яку я зробив; Валгрінд говорить мені:

"valgrind: не вдалося запустити інструмент" memcheck "для платформи" arm-linux ": такого файлу чи каталогу немає".

Спроба запустити будь-який інший інструмент дає те саме повідомлення. Для встановлення я використав опцію --prefix, що вказує на файлову систему вбудованої системи, яка монтується через NFS (наприклад, --prefix = / home / NFS_mount / opt / valgrind). Я перевірив місце установки, і там каталог lib містить належні інструменти; Я також перевірив відповідний файл pkgconfig для Valgrind, і, здається, це все в порядку, тому я зараз щось незрозумілий і не можу зрозуміти, що відбувається не так. 2 питання:

  1. Чи правильно використовувати / встановити перекладений Valgrind так? Можливо, я роблю щось не так у налаштуванні, або, можливо, щось пов’язане з хост-системою, чого мені не вистачає (на кшталт gdb / gdbserver).
  2. Хтось намагався запустити його на архітектурах ARM? Я знаю, що підтримка досить недавня, тому мені цікаво, чи зможу я отримати гідні результати.

Відповіді:


15

Запустіть цю команду на своєму цільовому пристрої

export VALGRIND_LIB=~/valgrind/lib/valgrind/

де ./valgrindвстановлений шлях до каталогу (вказано в ./configure)


4

Проблема полягає в тому, що 'valgrind' шукає інший виконуваний файл для запуску реальної перевірки. Він використовує шлях встановлення, який ви вказали, коли ви його налаштували, але це не той самий шлях, як у цілі.

Ви можете підтвердити це, створивши символьну посилання / home / NFS_mount у вашій цілі, що вказує на '/'.


Як він шукає цей шлях? У 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 має вказувати на папку з інструментом memcheck та іншими залежними x скомпільованими libs

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.