【问题标题】:Variable and operator seem to be ignored in assignment. What can make this happen?变量和运算符似乎在赋值中被忽略了。什么能让这发生?
【发布时间】:2011-12-05 18:17:39
【问题描述】:

我正在调试一个 android 应用程序,我在 Eclipse 调试视图中看到了该步骤:

    int bottom, right;
    bottom = 800;
    right = 480;
    float h ,v;
    h = right/86.0f;
    v = bottom/116.0f;

调试视图上的值表明 h = 86.0 和 v = 116.0

所以是调试器显示了正确的值?什么可以做到这一点?

提示 1:如果我将文字 86.0f 更改为 54.0f,则 h = 54.0 和 v 相同
提示 2:当应用程序运行良好时,这些值在调试视图中是正确的,但当它没有运行时(异常捕获、应用程序完成和 SEGV_MAPERR )似乎在这段代码之后很长时间发生,并且受到使用这个不正确的值的影响h 和 v。

【问题讨论】:

  • 基本常识:源代码是否与正在运行的应用程序同步?你在哪一行代码之前打破了?
  • 请问我怎么知道它是否不同步?断点位于所示代码之前的一行。这是另一个简单的任务。
  • 我不认为你在后面的代码中写了h = right/hv = bottom/v? :-P
  • 如果您不信任您的调试器,您可以随时添加 println 语句来进行完整性检查。
  • 大声笑@ruakh 之后没有反转。 Log.d 在 LogCat 中显示相同的内容。

标签: java android eclipse debugging segmentation-fault


【解决方案1】:

我不太确定,但似乎我面临着 Dalvik 的限制。玩了一下代码,出现了一个VerifyError,它把我带到了this link。在我的较大方法中减少变量数量并将它们拆分后,问题似乎消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2016-09-30
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多