Я работаю над проектом с открытым исходным кодом для домашних животных, который реализует некоторые алгоритмы потокового шифрования, и у меня возникают проблемы с ошибкой, вызванной только тогда, когда я запускаю ее на ARM-процессоре. Я даже попытался запустить двоичный файл ARM в x86 под qemu, но ошибка там не запускается.
Специфические механизмы ошибки остаются неуловимыми, но мой лучший снимок состоит в том, чтобы полагать, что это вызвано неудачной попыткой доступа к памяти, сделанной в моей программе, которая выполняется qemu, но молча игнорируется реальным процессором ARM в моей разработке доска.
Итак, поскольку проблема показывает, что ее очень трудно диагностировать, я хотел бы знать, есть ли какой-либо инструмент, который я мог бы использовать для улавливания непринятого доступа к памяти, сделанного моей запущенной программой, чтобы я мог видеть, где именно проблема возникает.
Я мог бы также использовать некоторый способ включения на моей плате разработки ARM некоторого сигнала (SIGBUS, возможно?), который будет выпущен, если процесс нарушает ограничения выравнивания памяти, например, мы получаем SIGSEGV при доступе к адресу без памяти. Он работает под управлением Linux 2.6.32.