我有一个Android应用程序使用JNI中的共享对象(我自己写的)导致了一个segault。但是,我正在调试它,因为每次崩溃时,我的/ dev / log / main都会出现如下消息:
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7608 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b760c ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7610 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7614 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7618 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b761c ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7620 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7624 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7628 ffffffff
有没有办法抑制手机上每个内存地址的输出,以便在堆栈跟踪中找到相关信息?
(更像是这样):
06-18 13:07:35.857 11350 11350 I DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 452c7000
06-18 13:07:35.857 11350 11350 I DEBUG : r0 00000021 r1 452c66a0 r2 00000033 r3 0000003c
06-18 13:07:35.857 11350 11350 I DEBUG : r4 000000a1 r5 452c7000 r6 002cf880 r7 453c6b08
06-18 13:07:35.857 11350 11350 I DEBUG : r8 4051e618 r9 00020000 10 51eb851f fp 81f03700
06-18 13:07:35.857 11350 11350 I DEBUG : ip 00000064 sp 452c6af8 lr 81f00e35 pc 81f00df8 cpsr 00000030
06-18 13:07:35.857 11350 11350 I DEBUG : d0 0000000000000000 d1 0000002f00000000
06-18 13:07:35.857 11350 11350 I DEBUG : d2 4da4480e423d3abc d3 006f1fe04a5247c0
06-18 13:07:35.857 11350 11350 I DEBUG : d4 00000000003491f0 d5 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d6 3f80000000000000 d7 43200000000000a0
06-18 13:07:35.857 11350 11350 I DEBUG : d8 0000000000000000 d9 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d10 0000000000000000 d11 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d12 0000000000000000 d13 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d14 0000000000000000 d15 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : scr 60000012
06-18 13:07:35.857 11350 11350 I DEBUG :
06-18 13:07:35.887 11350 11350 I DEBUG : tid 11348 not responding!
我主要在eclipse中使用DDMS透视图,但是必须使用adb shell
来捕获主日志中的直接转储,因为eclipse中的窗口很快就会被淹没。这是一个不可接受的工作流程。
答案 0 :(得分:0)
尝试在崩溃实际发生之前打开控制台,然后运行
adb logcat -s DEBUG | grep -v ffffffff > debug.log
您可以将logcat重定向到主机上的文件,并且可能会在崩溃后找到查看此巨大文件的方法。
答案 1 :(得分:0)
将logcat导入开发计算机上的文件
adb logcat > logfile
或者如果你有T恤,那就这样做,这样你也可以看到它飞过
adb logcat | tee logfile
然后在您喜欢的文本编辑器中打开文件并搜索感兴趣的项目
您还可以使用各种grep过滤器和管道进入寻呼机,例如更少或更多,但是存储到文件并在编辑器中检查您可以移动的地方更适合需要认真学习的问题。