【问题标题】:How to change a value while debugging to a variable using a conditional breakpoint in a IntelliJ Kotlin project on the fly?如何在使用 IntelliJ Kotlin 项目中的条件断点动态调试变量时更改值?
【发布时间】:2019-10-21 13:54:45
【问题描述】:

在 Java 项目中,这可以通过“错误”进行调试 - 使用条件断点为属性或变量设置值:

Java Breakpoint

不幸的是,同样的事情在 Kotlin 项目中是不可能的。错误是:赋值不是表达式,在这种情况下只允许使用表达式:

Kotlin Breakpoint

我知道我可以使用“设置值”在调试器窗口中执行此操作,但是我必须每次都手动执行此操作。使用条件断点/观察点自动设置该值,甚至无需暂停程序,直到我删除断点。这对于烟雾测试或演示非常有用。

提前致谢!

【问题讨论】:

    标签: java debugging intellij-idea kotlin breakpoints


    【解决方案1】:

    不要在条件字段中这样做,使用“评估和记录” - 此断点操作是专门为此创建的。

    您也可以取消设置“暂停”,它会默默地为您设置值:

    【讨论】:

      【解决方案2】:

      你可以执行一个函数来设置值:

      run { text = "Some Value" }
      

      这是一个表达式;它返回单位,但具有设置变量的副作用。

      如果条件字段需要你返回一个布尔值,你可以在后面加上:

      run { text = "Some Value"; false }
      

      这将返回 false,因此执行不会停止。

      【讨论】:

      • 我想到了相同的解决方案并尝试了它。它执行,但遗憾的是它没有改变值。
      • 这太糟糕了。它适用于评估表达式面板。但我不确定这怎么可能。
      猜你喜欢
      • 2022-07-28
      • 2017-03-13
      • 2017-09-14
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      相关资源
      最近更新 更多