Отладчик сборки 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
  • Затем вы запускаете свой отладчик, как обычно: ddd hello_stabs

  • Наслаждайтесь!

Опция -F stabs сообщает ассемблеру включить в выходной файл информацию об отладке. DDD и GDB используйте STABS отладочный формат.


Источник и хороший короткий учебник:

Отладчик отображения данных (DDD), Краткое руководство