dbxtool в 64-разрядном linux не будет загружать 64-разрядную версию dbx?
Вопрос
Я использую Linux-версию dbxtool для отладки 64-разрядной программы под названием frankie:
file ../support/frankie
../support/frankie: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
Когда я пытаюсь загрузить исполняемый файл в dbxtool, я получаю сообщение "неподдерживаемая архитектура", которое, как я предполагаю, означает, что загружена 32-разрядная версия dbx:
(dbx) debug ~/support/frankie
dbx: ~/support/frankie has unsupported architecture or file format
Однако, если я запускаю dbx из командной строки, он способен загрузить файл, предположительно, путем автоматической загрузки 64-разрядной версии отладчика.
(dbx) debug ../support/frankie
Reading frankie
Reading ld-linux-x86-64.so.2
Reading libm.so.6
Reading libncurses.so.5
Reading libc.so.6
Reading libdl.so.2
Я не могу найти ни одного варианта, который заставил бы dbxtool использовать 64-разрядный отладчик, фактически единственный, который я могу найти, - это принудительное использование 32-разрядного отладчика в 64-разрядной среде!
есть какие-нибудь предложения?
Решение
Обходной путь заключается в запуске dbxtool с отлаживаемой программой в командной строке.например ,
dbxtool buggyprogram buggyparameter
другой способ обойти проблему - завершить сеанс dbx, который автоматически загружается, и открыть новый.
Если вы получаете ошибку неподдерживаемой архитектуры при подключении к процессу, отладьте файл, затем присоедините к процессу, повторно используя существующий сеанс.