codecamp

IntelliJ IDEA如何进行DeBug调试

为项目配置了运行配置后,可以通过按 Shift+F9 在调试模式下启动它。

在 "调试工具" 窗口中,您可以看到框架和线程的状态、变量和表的列表。当您选择一个框架时,您会看到与所选框架相对应的变量。

调试快捷方式

  • 切断断点:Ctrl+F8
  • 恢复程序:F9
  • 跳过(Step Over):F8,一行一行地往下走,如果这一行上有方法不会进入方法。
  • 跳入(Step Into):F7,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
  • 强制跳入(Force Step Into):Alt + Shift + F7,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
  • 停止: Ctrl+F2
  • 查看断点详细信息/所有断点(View breakpoint details/all breakpoints):Ctrl+Shift+F8
  • 在插入符号中调试代码: Shift+F9  (当您停留在 main 方法中时),或 Shift+Alt+F9

断点

断点细节和条件

如果需要更改断点的详细信息,请按 Ctrl+Shift+F8。在这里,您可以指定断点条件。

IntelliJ IDEA断点的详细信息

如果您有任何实例标记了标签,您也可以在条件表达式中使用它:

IntelliJ IDEA断点的详细信息

如果要查看项目中的所有断点(使用更高级的设置),请再次按相同的快捷方式:Ctrl+Shift+F8。

字段断点

除了条件断点之外,您还可以使用字段断点。当访问某个字段以进行读取或写入时,这些断点将停止。要创建这样的一个断点,只需单击字段声明中的操作界面左侧的装订线:

IntelliJ IDEA字段断点

操作断点

如果您想要在特定的代码行中计算某些内容而不实际停止,则另一个操作可能会很有用。您可以使用 Action 断点来做到这一点。要创建一个操作断点,只需在按住 Shift 的同时点击操作界面左侧的装订线。

IntelliJ IDEA操作断点

临时断点

如果要创建仅停止一次的断点(临时断点),只需在按住 Shift+Alt 的同时点击操作界面左侧的装订线。

IntelliJ IDEA临时断点

禁用断点

通过在按住 Alt 的同时点击操作界面左侧的装订线可以快速地禁用任何断点。

IntelliJ IDEA禁用断点

调试器会话

智能开始

有时使用 IntelliJ IDEA 会发生这样的情况:你停留在一行代码上上,并希望进入一个特定的方法,但不是直接调用第一个方法。在这种情况下,您可以通过按下 Shift+F7 选择一个特定的方法进行智能化。这样的操作能够很好的节省时间。

IntelliJ IDEA调试器会话

拖放框架

如果您想在调试时“及时返回”,可以通过“放置帧”操作来完成。如果您的错误有很多的话,这个操作将会帮助到您。虽然这不会恢复您的应用程序的全局状态,但至少会让您返回到一堆帧。

IntelliJ IDEA拖放框架

在调试工具窗口参考描述了 图标。

运行到光标

有时您需要恢复程序并在另一行代码中停止,而不添加另一个断点。要达到这样的要求很简单:只需要按 Alt+F9 就可以了。

IntelliJ IDEA运行到光标

在调试工具窗口的工具栏参考中描述了该图标

标记实例

如果您希望在调试时始终识别特定实例,则可以通过 F11 或 "变量" 和 "监视" 选项卡中的上下文菜单将其标记为彩色标签。

IntelliJ IDEA调试

下次此实例出现在 "监视"、"变量" 或 "计算表达式" 中时,您将看到该标签:

IntelliJ IDEA调试

计算表达式

在调试模式下,可以通过按 Alt+F8 计算任何表达式。

IntelliJ IDEA计算表达式

这个工具就像在编辑器中一样,它提供代码完成,所以很容易输入任何表达式:

IntelliJ IDEA计算表达式

如果您有标记有标签的任何实例,代码完成将为您提供其名称,以便您可以对其进行评估:

IntelliJ IDEA计算表达式

IntelliJ IDEA计算表达式

重新加载更换和热交换

有时候,您需要在不关闭进程的情况下在代码中插入小的更改。由于 Java VM 具有这样的功能 HotSwap,IDE会自动处理这些情况,并且当您在调试模式下编译已经更改的类时,会向您提供重新加载已更改的类。

请记住,Java VM 的 HotSwap 有许多限制,不支持重新加载静态字段和方法。

远程调试

在 IntelliJ IDEA 中绝对应该了解的有关于调试的事情就是远程调试了。远程调试意味着将调试器连接到已经在您或其他主机上的特定端口上运行的进程。这样,您就可以将调试器附加到独立运行的应用程序服务器。

要创建远程配置,请转到编辑配置并添加远程运行配置。在运行此配置之前,请确保指定了正确的主机和端口。。

设置

如果要更改默认的调试器设置,请在 IntelliJ IDEA 的设置/首选项中选择调试器。

IntelliJ IDEA调试功能使用
IntelliJ IDEA断点类型
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }