Интерактивная разборка в GDB - PullRequest
2 голосов
/ 25 октября 2010

Можно ли заставить GDB интерактивно разбирать машинный код.Например:

(gdb) [команда дизассемблирования] 0x58 0xef 0x22

Если я дам вышеуказанную команду, gdb должен интерпретировать шестнадцатеричные значения как машинный код и вернуть мне разборку.Команды, о которых я знаю, разбирают только часть памяти загруженной программы.

1 Ответ

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

GDB не может сделать это напрямую, но вы можете подойти довольно близко:

cat > t.c <<EOF
char buf[512];
int main() { return 0; }
EOF

gcc -g t.c -o t

gdb -q ./t
Reading symbols from /tmp/t...done.
(gdb) b main
Breakpoint 1 at 0x8048352: file t.c, line 2.
(gdb) r

Breakpoint 1, main () at t.c:2
2   int main() { return 0; }
(gdb) set buf[0] = 0x58
(gdb) set buf[1] = 0xef
(gdb) set buf[2] = 0x22
(gdb) x/i buf
   0x8049560 <buf>: pop    %eax
(gdb) q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...