如何将 'disass <something>' 别名为当前位置的反汇编?
How to alias 'disass <something>' to a disassembly at the current location?
我无法在当前位置进行拆卸。 GDB 无法将 .
(点)识别为 "here":
(gdb) disass .
A syntax error in expression, near `.'.
发出 disass $pc
从函数的开头反汇编而不是 "here":
(gdb) disass $pc
Dump of assembler code for function _ZN8CryptoPP6RDSEED13GenerateBlockEPhm:
0x000000000056b962 <+0>: push %r13
0x000000000056b964 <+2>: push %r12
0x000000000056b966 <+4>: push %rbp
...
<skip 5 pages of output>
0x000000000056ba88 <+294>: mov %rdi,0x8(%rsp)
=> 0x000000000056ba8d <+299>: test %edx,%edx
0x000000000056ba8f <+301>: je 0x56ba7f <_ZN8CryptoPP6RDSEED13GenerateBlockEPhm+285>
...
如何创建别名或规则以提供在当前位置的反汇编、当前位置之前的一些指令以及当前位置之前的一些指令?
这似乎应该是内置功能,但 GDB 似乎没有提供它。其他低级调试器,如 WinDbg,具有内置功能。
disas
反汇编整个函数(按照设计和记录)。
您正在查找 x/10i $pc
(将 10 替换为所需的指令数)。
How can I alias disass . to the command above?
有 GDB alias
命令,但它拒绝了我使用它的尝试:
(gdb) alias ds = x/10i $pc
Invalid command to alias to: x/10i $pc
用户定义的命令有效:
(gdb) define disas
Type commands for definition of "disas".
End with a line saying just "end".
>x/10i $pc
>end
我无法在当前位置进行拆卸。 GDB 无法将 .
(点)识别为 "here":
(gdb) disass .
A syntax error in expression, near `.'.
发出 disass $pc
从函数的开头反汇编而不是 "here":
(gdb) disass $pc
Dump of assembler code for function _ZN8CryptoPP6RDSEED13GenerateBlockEPhm:
0x000000000056b962 <+0>: push %r13
0x000000000056b964 <+2>: push %r12
0x000000000056b966 <+4>: push %rbp
...
<skip 5 pages of output>
0x000000000056ba88 <+294>: mov %rdi,0x8(%rsp)
=> 0x000000000056ba8d <+299>: test %edx,%edx
0x000000000056ba8f <+301>: je 0x56ba7f <_ZN8CryptoPP6RDSEED13GenerateBlockEPhm+285>
...
如何创建别名或规则以提供在当前位置的反汇编、当前位置之前的一些指令以及当前位置之前的一些指令?
这似乎应该是内置功能,但 GDB 似乎没有提供它。其他低级调试器,如 WinDbg,具有内置功能。
disas
反汇编整个函数(按照设计和记录)。
您正在查找 x/10i $pc
(将 10 替换为所需的指令数)。
How can I alias disass . to the command above?
有 GDB alias
命令,但它拒绝了我使用它的尝试:
(gdb) alias ds = x/10i $pc
Invalid command to alias to: x/10i $pc
用户定义的命令有效:
(gdb) define disas
Type commands for definition of "disas".
End with a line saying just "end".
>x/10i $pc
>end