Отладчик сборки Linux
Мне нужен отладчик для сборки в Linux. Я очень удивлен LACK отладчиков там для Linux! Он должен иметь различные функции, такие как отображение регистров, а что нет. Я бы использовал GDB, однако он не совсем дружит с NASM.
Я предпочел бы, чтобы отладчик имел синтаксис intel, но я могу принести жертву.
Я пробовал kdb, gdb/ddd и ald. Кто-нибудь знает что-нибудь еще? Не рекомендуйте strace, потому что я выхожу за пределы системных вызовов!
Ответы
Ответ 1
Я не уверен, что именно вы имеете в виду, когда говорите, что gdb не дружит с NASM. Дело в том, что gdb использует AT & T нотацию для отображения ассемблера. NASM использует нотацию Intel. Есть несколько отличий, которые вы можете найти в google.
Вы можете настроить gdb для отображения ассемблера с использованием нотации Intel. Команда set disassembly-flavor intel
Программы, которые вы пробовали, kdb, ddd и друзья - это все интерфейсы gdb. То есть они представляют вам разные пользовательские интерфейсы, в то время как gdb используют их как back-end.
Я думаю, что ваш лучший и, возможно, единственный разумный вариант - gdb. Другой вариант - написать отладчик самостоятельно, но это довольно сложно.
Надеюсь, что это поможет.
Ответ 2
Может ли какой-нибудь из отладчиков, перечисленных в здесь помочь?
Ответ 3
Я действительно понимаю вопрос @Saustin, потому что я тоже искал отладчик Linux Assembly, что означает возможность создания контрольных точек, шаг за шагом запускать, просматривать регистры в режиме реального времени, вернуться назад (backtrace) или перейти вперёд, увидеть данные в памяти и т.д.
Правильное использование решения DDD/GDB.
Во-первых, это скриншот, показывающий, как он выглядит.
![ddd отладка файла ASM]()
Для этого требуется специальное требование:
- При создании исполняемого файла используйте специальный флаг
-F stabs
в nasm
следующим образом:
Командная строка Linux:
nasm -f elf -F stabs hello.asm -o hello_stabs.o
ld -m elf_i386 hello_stabs.o -o hello_stabs
Опция -F stabs
сообщает ассемблеру включить в выходной файл информацию об отладке. DDD и GDB используйте STABS отладочный формат.
Источник и хороший короткий учебник:
Отладчик отображения данных (DDD), Краткое руководство