2012-02-04 59 views
6

我無法找到cgdb反彙編二進制代碼的方式,並在代碼窗口中顯示當前指令的彙編代碼。這是可能的,我應該使用什麼命令?我正在使用Mac OS X並從自制軟件倉庫獲取cgdb。如何讓cgdb顯示彙編代碼?

回答

4

display/i $pc在控制檯窗口中始終顯示當前指令的反彙編。

要顯示反彙編的更多說明,請在前綴i前加上說明數量。

例如,

display/5i $pc 

示出了拆卸總是在未來5點的指令。

+1

這種無視cgdb的目的。爲什麼要用它來代替普通的gdb來調試無源應用程序,如果這個功能只能通過gdb命令來實現的話? – Ruslan 2015-11-22 11:46:25

+0

現在有一種方法可以使用':set dis'(從版本0.7.0開始)執行此操作。看到我的答案。 – 2017-03-29 17:25:10

0

我正在使用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 

嗯,這是15年12月11日,但似乎仍不能證明像在TUI模式gdb的代碼窗口中的彙編代碼。

2

最近更新(2017年2月)到cgdb可以做到這一點。您將需要cgdb版本0.7.0或更新版本。 (在撰寫本文時,這是最新版本)。你可能需要自己編譯這個源代碼,看看它有多近。在加入拆卸支持

更多細節可以在這裏找到: https://github.com/cgdb/cgdb/issues/44

要查看cgdb拆裝打ESC和類型:set dis進入

要返回源(如果可用),請重複此操作,但輸入:set nodis