BlackBerry - 如何在调试时解释sysout控制台输出

时间:2012-01-18 09:30:31

标签: debugging blackberry

我在查看我的BB应用中的新错误时遇到了麻烦。我想了解RIM提供的控制台日志记录输出。

背景:我无法让它在模拟器上中断,所以我在Torch设备上运行JDE-4.5编译的应用程序。通过Eclipse(在Windows上)使用设备上调试。

运行应用程序几分钟后,我可以让它崩溃 - 有很多Web服务调用一直在发生,对列表中的行进行了大量的UI更新。当应用程序崩溃时,Eclipse不会捕获异常。

我已经检查了系统日志(ALT-lglg),但其中确实有很多消息,主要是指消息/事件循环。但是,我找不到我的代码。我将进一步调查日志(感谢Max Gontar在Blackberry console output上下载了它)。但是,对于这篇当前的帖子,我要求更多关于控制台输出的解释,而不是一般的BB调试技巧。

崩溃时的输出是常规弹出框说:

  

未捕获的异常:应用程序ITrack(307)不是   响应;流程已终止


问题:我如何解释附加的控制台输出 - 特别是我觉得VM:...行可能包含一些有用的信息,但我发现其中没有关于Google的资源?

在控制台输出下面(与我已经理解的评论分开):

- 我的调试输出 - 完成Web服务,记录JSON。控制台上的前几行几乎都与此类似 - 这是正确运行的应用程序:

Response received: 5
{"lng":"28.256607055664063","lat":"-25.828020095825195","zip_postal":"","city":"Pretoria","town":"Pretoria","road":"Alandale Street","suburb":"Elardus Park","region":"Gauteng","country":"South Africa"}
response success: 5

- 的 CRASH !!!

VM:ECTTv=1,w=0
Application ITrack(307) is not responding; process terminated

- 这些行以某种方式与其中一个错误相关 - 我在设备日志中看到它们重复:

[0 2]
0 2

- < SNIP> - 0 2重复62(!)次:

0 2
3d 3501
0 2
0 2
0 2
0 2
3d 3502
0 2

- < SNIP> - 0 2再重复31次:

- 这部分给出了在崩溃时用作线程锁的对象的一些信息。 需要更多信息。

VM:THMNx=177,r=0x19965800,t=java.lang.Object
VM:THMNx=147,r=0x19966400,t=net.rim.vm.Message
VM:THMNx=177,r=0x20AC00,t=CHAR[]
VM:THMNx=147,r=0x197CD000,t=net.rim.vm.MessageQueue
VM:THMNx=138,r=0x228D8800,t=net.rim.device.cldc.io.proxyhttp.ClientProtocol
VM:THMNx=129,r=0x22718C00,t=net.rim.device.cldc.io.proxyhttp.ClientProtocol

- 这部分我一无所知。

VM:THDRr=native
VM:THDLv=0
VM:ECTTv=0,w=0

-App已崩溃,系统正在清理并返回Home Ribbon屏幕:

AM: Exit ITrack(307)
ApplicationManagerImpl.processExited : process process switching to background:  pid=307
Process ITrack(307) cleanup started
Process ITrack(307) cleanup done
AM: Foreground is requested: net_rim_bb_ribbon_app(109)
TID:unable to execute in the app com.mix.ITrack.main.Application@1a29405e|java.lang.Object@7fbc2b0a|-1
FocusHistory: Focus gained; App ITrack; Component com.mix.ITrack.shared.mix.ui.controls.DynamicRowListField
FocusHistory: Focus lost; App ITrack; Component net.rim.device.apps.internal.ribbon.launcher.ApplicationAreaGridField
FocusHistory: Focus gained; App net_rim_bb_ribbon_app; Component net.rim.device.api.ui.component.ButtonField
AM: Foreground is set: net_rim_bb_ribbon_app(109)
ApplicationManagerImpl.setForegroundProcess : calling notifyApplicationSwitch to switch to foreground: process=net_rim_bb_ribbon_app(109) pid=109

  • 这里有什么信息看起来对BB有经验的人比我有用吗?
  • 是否有任何关于解释VM:...行的信息?

(请注意我并不是要求提供一般的BB调试建议,因为在stackoverflow上已经有一些很好的答案。但是我很想看到这个'神秘的'RIM日志代码。)

1 个答案:

答案 0 :(得分:1)

开始:根据this BlackBerry forum answer by klyubin,以VM:THMNx=开头的行是指崩溃时持有的锁。