GDB中的交互反汇编

GDB中的交互反汇编,gdb,Gdb,有可能让gdb以交互方式反汇编机器代码吗。例如: (gdb)[反汇编命令]0x58 0xef 0x22 如果我给出上述命令,gdb应该将十六进制值解释为机器代码,并返回反汇编。据我所知,这些命令只能反汇编加载程序内存的一部分 GDB无法直接做到这一点,但您可以非常接近: cat > t.c <<EOF char buf[512]; int main() { return 0; } EOF gcc -g t.c -o t gdb -q ./t Reading symbols

有可能让gdb以交互方式反汇编机器代码吗。例如:

(gdb)[反汇编命令]0x58 0xef 0x22


如果我给出上述命令,gdb应该将十六进制值解释为机器代码,并返回反汇编。据我所知,这些命令只能反汇编加载程序内存的一部分

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

cat>t.c+1的创意和努力,但我正在寻找更简单的东西。