Невозможно использовать Valgrind для исполняемого файла для ARM-Linux

Я не слишком уверен в значении типов разделов, но, похоже, они позволяют ОС знать, к каким разделам он может прикоснуться.

Вы должны создать файловую систему в определенном разделе. Для подкачки вы используете mkswap , для ext2 mkfs.ext2 , для ext4 mkfs.ext4 и так далее.

Тип раздела изменяется с помощью fdisk .

От имени пользователя root или типа sudo fdisk / dev / sda

В командной строке введите t для «Переключить тип раздела». Вам будет предложено ввести номер раздела.

Partition number (1-3, default 3): 

(Если вы не знаете номер раздела, введите p , чтобы распечатать таблицу разделов). Введите номер раздела. Затем он печатает

Partition type (type L to list all types): L

Это дает вам список известных типов разделов. Важными из них являются:

7  HPFS/NTFS/exFAT - For Windows systems
f  W95 Ext'd (LBA) - For an extended partition (I prefer f instead of 5 b'cos of LBA)

К Linux относятся:

82 Linux swap
83 Linux
8e Linux LVM
fd Linux raid auto

Для вашего варианта использования вам понадобится 83 .

Примечание. Это таблица разделов MBR. При использовании GPT тип раздела имеет длину 16 бит, а AFAIK предваряется 00. Кто-нибудь может исправить меня, если я ошибаюсь.

3
22.11.2017, 03:14
1 ответ

Valgrind пытается запустить подходящий исполняемый файл для инструмента «memcheck», но не может его найти. Это связано с тем, что сценарий './configure' создал Makefile, пригодный для установки пакета valgrind, специфичного для хост-архитектуры (вашего ПК ), но вы передаете ему исполняемый файл, означающий для другого (ARM в вашем случае); это приводит к ситуации, когда вам не хватает специальных инструментов ARM для выполнения этой работы. У меня была аналогичная проблема с инструментом callgrind (, который также является частью пакета valgrind ), и, выполнив strace, я получил следующую строку:

execve("/usr/local/lib/valgrind/callgrind-arm-linux", ["valgrind", "--tool=callgrind", "Application.STM.out"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)

Это означает, что я пропустил специфичный для ARM двоичный файл callgrind.

уточнив это, то, что вы (и я не так давно )пытаемся сделать, не поддерживается valgrind, поэтому вы хотите использовать эмулятор, чтобы делать то, что вы хотите.

0
27.01.2020, 21:35

Теги

Похожие вопросы