监视 运行 程序的变量?

Monitor variables of a running program?

我正在开发一个小型多人游戏,它有一个 tick 方法,可以执行各种逻辑操作,例如移动、创建和检查游戏元素。

每 100 毫秒调用一次 tick 方法。有时由于错误而出错。但是这些错误很难追踪,主要是因为每秒调用多次。因此,当我在某些点添加调试日志条目时,日志变得过于拥挤并且不太容易理解。

有没有办法在游戏保持 运行 的同时监控某些变量?

我试过 jmx,但由于 jmx 的复杂性,设置 jmx 以监视变量的时间相当长。另外在跟踪a时不知道要监控哪个变量,这意味着我需要快速从一个变量切换到另一个变量。

我认为 Chronon DVR for Java 或类似的工具可能是适合您的解决方案,您可以记录所有内容,然后进行分析以找出导致问题的错误。

Chronon records the entire execution of your Java program and saves it to disk. Recordings can be played back any time, thus eliminating those 'Non Reproducible' bugs.

或者您可以尝试将 Eclipse 调试器附加到远程 运行 Java 应用程序,查看 this guide 了解更多信息。

这是每秒调用 30/60 次抽奖的游戏设计的一个大问题。

我发现在屏幕上输出所有值有很大帮助,因为它不会保存以前的值,因此您可以很容易地看到事情何时发生变化。

您还可以在值更改到不应更改的范围时添加断点,从而允许您进一步检查代码,例如

  1 if(val>1000){
  2     debugger;
  3 }