IntelliJ IDEA如何進(jìn)行DeBug調(diào)試

2018-10-27 09:16 更新

為項(xiàng)目配置了運(yùn)行配置后,可以通過按 Shift+F9 在調(diào)試模式下啟動(dòng)它。

在 "調(diào)試工具" 窗口中,您可以看到框架和線程的狀態(tài)、變量和表的列表。當(dāng)您選擇一個(gè)框架時(shí),您會(huì)看到與所選框架相對(duì)應(yīng)的變量。

調(diào)試快捷方式

  • 切斷斷點(diǎn):Ctrl+F8
  • 恢復(fù)程序:F9
  • 跳過(Step Over):F8,一行一行地往下走,如果這一行上有方法不會(huì)進(jìn)入方法。
  • 跳入(Step Into):F7,如果當(dāng)前行有方法,可以進(jìn)入方法內(nèi)部,一般用于進(jìn)入自定義方法內(nèi),不會(huì)進(jìn)入官方類庫的方法。
  • 強(qiáng)制跳入(Force Step Into):Alt + Shift + F7,能進(jìn)入任何方法,查看底層源碼的時(shí)候可以用這個(gè)進(jìn)入官方類庫的方法。
  • 停止: Ctrl+F2
  • 查看斷點(diǎn)詳細(xì)信息/所有斷點(diǎn)(View breakpoint details/all breakpoints):Ctrl+Shift+F8
  • 在插入符號(hào)中調(diào)試代碼: Shift+F9  (當(dāng)您停留在 main 方法中時(shí)),或 Shift+Alt+F9

斷點(diǎn)

斷點(diǎn)細(xì)節(jié)和條件

如果需要更改斷點(diǎn)的詳細(xì)信息,請(qǐng)按 Ctrl+Shift+F8。在這里,您可以指定斷點(diǎn)條件。

IntelliJ IDEA斷點(diǎn)的詳細(xì)信息

如果您有任何實(shí)例標(biāo)記了標(biāo)簽,您也可以在條件表達(dá)式中使用它:

IntelliJ IDEA斷點(diǎn)的詳細(xì)信息

如果要查看項(xiàng)目中的所有斷點(diǎn)(使用更高級(jí)的設(shè)置),請(qǐng)?jiān)俅伟聪嗤目旖莘绞剑篊trl+Shift+F8。

字段斷點(diǎn)

除了條件斷點(diǎn)之外,您還可以使用字段斷點(diǎn)。當(dāng)訪問某個(gè)字段以進(jìn)行讀取或?qū)懭霑r(shí),這些斷點(diǎn)將停止。要?jiǎng)?chuàng)建這樣的一個(gè)斷點(diǎn),只需單擊字段聲明中的操作界面左側(cè)的裝訂線:

IntelliJ IDEA字段斷點(diǎn)

操作斷點(diǎn)

如果您想要在特定的代碼行中計(jì)算某些內(nèi)容而不實(shí)際停止,則另一個(gè)操作可能會(huì)很有用。您可以使用 Action 斷點(diǎn)來做到這一點(diǎn)。要?jiǎng)?chuàng)建一個(gè)操作斷點(diǎn),只需在按住 Shift 的同時(shí)點(diǎn)擊操作界面左側(cè)的裝訂線。

IntelliJ IDEA操作斷點(diǎn)

臨時(shí)斷點(diǎn)

如果要?jiǎng)?chuàng)建僅停止一次的斷點(diǎn)(臨時(shí)斷點(diǎn)),只需在按住 Shift+Alt 的同時(shí)點(diǎn)擊操作界面左側(cè)的裝訂線。

IntelliJ IDEA臨時(shí)斷點(diǎn)

禁用斷點(diǎn)

通過在按住 Alt 的同時(shí)點(diǎn)擊操作界面左側(cè)的裝訂線可以快速地禁用任何斷點(diǎn)。

IntelliJ IDEA禁用斷點(diǎn)

調(diào)試器會(huì)話

智能開始

有時(shí)使用 IntelliJ IDEA 會(huì)發(fā)生這樣的情況:你停留在一行代碼上上,并希望進(jìn)入一個(gè)特定的方法,但不是直接調(diào)用第一個(gè)方法。在這種情況下,您可以通過按下 Shift+F7 選擇一個(gè)特定的方法進(jìn)行智能化。這樣的操作能夠很好的節(jié)省時(shí)間。

IntelliJ IDEA調(diào)試器會(huì)話

拖放框架

如果您想在調(diào)試時(shí)“及時(shí)返回”,可以通過“放置幀”操作來完成。如果您的錯(cuò)誤有很多的話,這個(gè)操作將會(huì)幫助到您。雖然這不會(huì)恢復(fù)您的應(yīng)用程序的全局狀態(tài),但至少會(huì)讓您返回到一堆幀。

IntelliJ IDEA拖放框架

在調(diào)試工具窗口參考描述了 圖標(biāo)。

運(yùn)行到光標(biāo)

有時(shí)您需要恢復(fù)程序并在另一行代碼中停止,而不添加另一個(gè)斷點(diǎn)。要達(dá)到這樣的要求很簡(jiǎn)單:只需要按 Alt+F9 就可以了。

IntelliJ IDEA運(yùn)行到光標(biāo)

在調(diào)試工具窗口的工具欄參考中描述了該圖標(biāo) 。

標(biāo)記實(shí)例

如果您希望在調(diào)試時(shí)始終識(shí)別特定實(shí)例,則可以通過 F11 或 "變量" 和 "監(jiān)視" 選項(xiàng)卡中的上下文菜單將其標(biāo)記為彩色標(biāo)簽。

IntelliJ IDEA調(diào)試

下次此實(shí)例出現(xiàn)在 "監(jiān)視"、"變量" 或 "計(jì)算表達(dá)式" 中時(shí),您將看到該標(biāo)簽:

IntelliJ IDEA調(diào)試

計(jì)算表達(dá)式

在調(diào)試模式下,可以通過按 Alt+F8 計(jì)算任何表達(dá)式。

IntelliJ IDEA計(jì)算表達(dá)式

這個(gè)工具就像在編輯器中一樣,它提供代碼完成,所以很容易輸入任何表達(dá)式:

IntelliJ IDEA計(jì)算表達(dá)式

如果您有標(biāo)記有標(biāo)簽的任何實(shí)例,代碼完成將為您提供其名稱,以便您可以對(duì)其進(jìn)行評(píng)估:

IntelliJ IDEA計(jì)算表達(dá)式

IntelliJ IDEA計(jì)算表達(dá)式

重新加載更換和熱交換

有時(shí)候,您需要在不關(guān)閉進(jìn)程的情況下在代碼中插入小的更改。由于 Java VM 具有這樣的功能 HotSwap,IDE會(huì)自動(dòng)處理這些情況,并且當(dāng)您在調(diào)試模式下編譯已經(jīng)更改的類時(shí),會(huì)向您提供重新加載已更改的類。

請(qǐng)記住,Java VM 的 HotSwap 有許多限制,不支持重新加載靜態(tài)字段和方法。

遠(yuǎn)程調(diào)試

在 IntelliJ IDEA 中絕對(duì)應(yīng)該了解的有關(guān)于調(diào)試的事情就是遠(yuǎn)程調(diào)試了。遠(yuǎn)程調(diào)試意味著將調(diào)試器連接到已經(jīng)在您或其他主機(jī)上的特定端口上運(yùn)行的進(jìn)程。這樣,您就可以將調(diào)試器附加到獨(dú)立運(yùn)行的應(yīng)用程序服務(wù)器。

要?jiǎng)?chuàng)建遠(yuǎn)程配置,請(qǐng)轉(zhuǎn)到編輯配置并添加遠(yuǎn)程運(yùn)行配置。在運(yùn)行此配置之前,請(qǐng)確保指定了正確的主機(jī)和端口。。

設(shè)置

如果要更改默認(rèn)的調(diào)試器設(shè)置,請(qǐng)?jiān)?nbsp;IntelliJ IDEA 的設(shè)置/首選項(xiàng)中選擇調(diào)試器。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)