Вопрос GDB - как проходить дизассемблированный код построчно? - PullRequest
1 голос
/ 04 мая 2010

Я хотел бы просмотреть двоичный файл, который мой учитель дал мне построчно, чтобы проверить адреса в стеке и содержимое разных регистров, но я не очень хорошо знаком с использованием gdb. Хотя у меня есть код на C, мы должны работать полностью из двоичного файла. Вот команды, которые я использовал до сих пор:

(gdb) file SomeCode

Что дает мне это сообщение:

Reading symbols from ../overflow/SomeCode ...(no debugging symbols found)...done.

Тогда я использую:

(gdb) disas main

, что дает мне всю сборку. Я хотел установить точку останова и использовать команду «next», но ни одна из команд, которые я пробовал, не сработала. Кто-нибудь знает синтаксис, который я бы использовал?

Ответы [ 2 ]

3 голосов
/ 04 мая 2010

попробуйте использовать ni, что nexti. эквивалент si который является пошаговой инструкцией

2 голосов
/ 25 октября 2010

nexti, если вы хотите перепрыгнуть через вызовы функций. stepi, если вы хотите ввести вызов функции.

Следующая документация очень полезна; у него есть список всех важных команд, которые вы можете использовать в GDB.

X86-64: http://csapp.cs.cmu.edu/public/docs/gdbnotes-x86-64.pdf

IA32: http://csapp.cs.cmu.edu/public/docs/gdbnotes-ia32.pdf

...