【发布时间】: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/h和v = bottom/v? :-P -
如果您不信任您的调试器,您可以随时添加 println 语句来进行完整性检查。
-
大声笑@ruakh 之后没有反转。 Log.d 在 LogCat 中显示相同的内容。
标签: java android eclipse debugging segmentation-fault