我找不到 cgdb 反汇编二进制文件并在代码窗口中显示带有当前指令的汇编代码的方法。这可能吗?我应该使用什么命令?我正在使用 Mac OS X 并从自制软件存储库中获取 cgdb。
3 回答
display/i $pc
在控制台窗口中始终显示当前指令的反汇编。
要显示更多指令的反汇编,请以指令i
数量为前缀。
例如,
display/5i $pc
总是显示接下来 5 条指令的反汇编。
最近对 cgdb 的更新(2017 年 2 月)使这成为可能。您将需要 cgdb 版本 0.7.0 或更高版本。(在撰写本文时,这是最新版本)。考虑到它的最新程度,您可能需要自己从源代码编译它。
更多关于添加反汇编支持的细节可以在这里找到: https ://github.com/cgdb/cgdb/issues/44
要查看 cgdb 中的反汇编,请点击esc并键入:set dis
enter.
要返回源(如果可用),请重复此操作,但 type 除外:set nodis
。
我正在使用 MacOS 来化解二进制炸弹并发现“gdb -tui”会有所帮助。比我发现“cgdb”可以使代码丰富多彩。但是我们希望看到的是在代码窗口显示反汇编代码,上面的答案只显示代码行或只显示不变的行。
不幸的是,我发现一个帖子说“ cgdb 不支持汇编显示(还)”。 https://groups.google.com/forum/#!topic/cgdb-users/E-jZCJiBAQQ
Sorry guys, cgdb does not support assembly display (yet). It's a
frequently requested feature, and when we get a little more time to
work on cgdb we will probably add this.
Starting cgdb with the -tui option is a bad idea -- the TUI (text user
interface) is an alternative curses interface to gdb, not a part of
cgdb. It will not play nice with cgdb.
Mike
--
Mike Mueller
好吧,现在是 12/11/15,但似乎仍然无法在 tui 模式下的 gdb 等代码窗口上显示汇编代码。