Отладчик Ассемблера Для Linux
Мне нужен отладчик для сборки в Linux. Я очень удивлен отсутствием отладчиков для Linux! Он должен иметь различные функции, такие как отображение регистров, а что нет. Я бы использовал GDB, однако он не совсем дружелюбен к NASM.
Я бы предпочел, чтобы отладчик имел синтаксис intel, однако я могу принести жертву.
Я пробовал kdb, gdb / ddd и ald. Кто-нибудь еще знает? Не рекомендую strace, потому что я иду дальше системных вызовов!
3 ответов
Я не уверен, что именно Вы имеете в виду, когда говорите, что gdb не дружит с NASM. Дело в том, что gdb использует нотацию AT&T для отображения ассемблера. NASM использует нотацию Intel. Есть несколько отличий, которые вы можете найти в google.
вы можете настроить gdb для отображения ассемблера с помощью нотации Intel. Команда установлена разборка-вкус intel
программы, которые вы пробовали, kdb, ddd и друзья-все интерфейсы gdb. Т. е. они представляют тебя другим. UI при использовании gdb в качестве их бэк-энда.
Я думаю, что ваш лучший и, возможно, единственный разумный вариант-gdb. Другой вариант-написать отладчик самостоятельно, но это тихо сложно.
надеюсь, что это помогает.
Я действительно понимаю @Saustinвопрос, потому что я тоже искал отладчик сборки Linux, что означает возможность создавать точки останова, запускать шаг за шагом, видеть регистры в режиме реального времени, возвращаться (backtrace) или идти вперед, видеть данные в памяти и т. д.
решение используется правильно DDD/GDB.
во-первых, это скриншот показать, как это выглядит.
для этого нужно некоторое специальное требование:
- при создании исполняемого файла используйте специальный флаг
-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 использовать удары отладку.
источник и хороший краткий учебник:
отладчик отображения данных (DDD), краткое руководство по запуску