IntelliJ IDEA调试时,断点求值与条件断点的System.out输出位置咨询
在IntelliJ IDEA调试时,断点表达式的System.out输出去哪了?
嘿,这个问题我之前调试的时候也纠结过,给你掰扯清楚:
普通断点处执行表达式的输出位置
当你在断点暂停后,打开「Evaluate Expression」(或者直接在Debug Console里输入)执行System.out.println("Hello World!"),这个输出默认会跑到IDEA的「Run」标签页控制台,而不是Debug Console。
原因很简单:System.out是Java程序的标准输出流,IDEA默认把程序的标准输出绑定到「Run」窗口,Debug Console只负责显示调试相关的信息(比如变量值、断点命中提示、表达式的返回结果)。
条件断点中的输出位置
你说的那种条件断点——比如设置条件为System.out.println(x); return false;,用来不暂停程序就看变量值的情况,输出位置和上面一样,也是**「Run」标签页的控制台**。
因为本质上还是调用了程序的标准输出流,和正常运行时的输出路径完全一致,不会因为是在断点条件里执行就改变输出位置。
小技巧:让Debug Console也显示标准输出
如果你不想来回切换Run和Debug窗口,可以在Debug窗口右上角点那个齿轮图标,勾选「Show stdout」选项。这样之后,System.out的输出会同时出现在Run和Debug Console里,调试的时候看信息更方便。
内容的提问来源于stack exchange,提问作者Ahmad Shahwan
相关产品推荐
相关产品推荐

