多谢,这个不能算作调试吧,是错误信息的堆栈信息复原。
专业教程啊, 楼主好棒:867::867::867::867:
嗯,感谢纠正,这个确是算恢复错误堆栈信息,用调试不准确,标题已改。
小白android不是很懂,第一种办法 日志在哪里输入啊 又在输出在哪里;
第二种 是把 eclipse里面 logcat的日志保存 成txt, 然后
adb logcat > C:\Users\hp\Desktop\log.txt E:\tools\NDK\ndk-stack -sym E:\cocos2d-x-3.0rc0\projects\test\proj.android\obj\local\armeabi -dump log.txt
$NDK $PROJECT_PATH 这个可以写成绝对路径吧, 然后貌似没成功
log 变成一堆提示了
Invalid filter expression ‘E:\tools\NDK\ndk-stack’
Usage: logcat
options include:
-s Set default filter to silent.
Like specifying filterspec '*:s'
-f Log to file. Default to stdout
-r ] Rotate log every kbytes. (16 if unspecified). Requires -f
-n Sets max number of rotated logs to , default 4
-v Sets the log print format, where is one of:
brief process tag thread raw time threadtime long
-c clear (flush) the entire log and exit
-d dump the log and then exit (don’t block)
-t print only the most recent lines (implies -d)
-g get the size of the log’s ring buffer and exit
-b Request alternate ring buffer, ‘main’, ‘system’, ‘radio’
or 'events'. Multiple -b parameters are allowed and the
results are interleaved. The default is -b main -b system.
-B output the log in binary
filterspecs are a series of
:priority]
where is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
‘’ means ':d’ and by itself means :v
楼上那个显然是没配置好啊
牛逼, 一次吃两个茶叶蛋…
膜拜土豪…
需要配置什么?
这个比google 的breakpad好用吗?
mark,给力
不明所以然。
看不懂。好像很历害的样子。还是顶一下
什么意思?这是windows版本的?mac版本的怎么弄啊
每次就显示这样一点信息
********** Crash dump: **********
Build fingerprint: ‘samsung/GT-I9100/GT-I9100:4.0.4/IMM76L/eng.build.20130311.12
2614:eng/release-keys’
pid: 3074, tid: 3111 >>> com.pinyoush.ddz3 <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr fffffffc
感谢分享 解决了我的问题
我想请问,为什么我的logcat出来的东西 前面不是 I/DEBUG ??? 下边是log的部分展示,还请指导下!
W/HDCP ( 99): Device not support HDCP, just exit.
I/HDCP ( 99): HDCP exiting
D/ScreenScaleManager( 99): i is 0
D/ScreenScaleManager( 99): i is 1
D/ScreenScaleManager( 99): i is 2
D/ScreenScaleManager( 99): i is 3
D/ScreenScaleManager( 99): i is 4
D/ScreenScaleManager( 99): MainDisplaySysNode is /sys/class/graphics/fb2/scale
D/ScreenScaleManager( 99): AuxDisplaySysNode is /sys/class/graphics/fb0/scale
D/ScreenScaleManager( 99): display 0, rate 95
--------- beginning of /dev/log/system
I/Vold ( 98): Vold 2.1 (the revenge) firing up
I/RegionTag( 109): ----------------running drmservice---------------
I/RegionTag( 109): ret=0, sn length=0
I/RegionTag( 109): SN Buffer=
I/RegionTag( 109): serialno in nand.
I/Netd ( 100): Netd 1.0 starting
W/InterfaceController( 100): Warning (Cannot load library: load_library(linker.cpp:745): library “/system/lib/libnetcmdiface.so” not found) while opening the net interface command library
I/RegionTag( 109): 0, , 30SWI23EKJ
I/RegionTag( 109): drm keybox disable!!
I/RegionTag( 109): detect keybox disabled
I/RegionTag( 109): unknown wifi chip , get it !!!. time=0
I/DEBUG ( 101): debuggerd: Sep 19 2014 00:37:12
D/InputEventConsistencyVerifier( 768): 1: sent at 251300000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_MENU, scanCode=141, metaState=0, flags=0x8, repeatCount=0, eventTime=251300, downTime=251200, deviceId=0, source=0x101 }
D/InputEventConsistencyVerifier( 768): 2: sent at 251200000000, KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_MENU, scanCode=141, metaState=0, flags=0x8, repeatCount=0, eventTime=251200, downTime=251200, deviceId=0, source=0x101 }
D/InputEventConsistencyVerifier( 768): 3: sent at 204318107000, MotionEvent { action=ACTION_UP, id=0, x=653.125, y=516.09375, toolType=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=204318, downTime=203176, deviceId=2, source=0x1002 }
D/InputEventConsistencyVerifier( 768): 4: sent at 204308070000, MotionEvent { action=ACTION_MOVE, id=0, x=653.125, y=516.09375, toolType=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=204308, downTime=203176, deviceId=2, source=0x1002 }
D/InputEventConsistencyVerifier( 768): 5: sent at 204261011000, MotionEvent { action=ACTION_MOVE, id=0, x=653.125, y=516.09375, toolType=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=204261, downTime=203176, deviceId=2, source=0x1002 }
V/TabletStatusBar( 460): setLightsOn(true)
D/dalvikvm( 1220): GC_EXPLICIT freed 70K, 1% free 12713K/12824K, paused 5ms+11ms, total 75ms
D/MediaPlayerFactory( 106): FILE:(/system/vendor/Game.apk) get STAGEFRIGHT_PLAYER
D/MediaPlayerFactory( 106): createPlayer:playerType=3
虽然我很想现在就试试 但还是等过几天项目正式版出了再搞吧
赶脚项目临近结束的时候提交代码的时候
都有强迫症了有没有
********** Crash dump: **********
Build fingerprint: ‘generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys’
pid: 351, tid: 351 >>> /data/local/ndk-tests/crasher <<<
signal 11 (SIGSEGV), fault addr 0d9f00d8
Stack frame #00 pc 0000841e /data/local/ndk-tests/crasher : Routine zoo in /tmp/foo/crasher/jni/zoo.c:13
Stack frame #01 pc 000083fe /data/local/ndk-tests/crasher : Routine bar in /tmp/foo/crasher/jni/bar.c:5
Stack frame #02 pc 000083f6 /data/local/ndk-tests/crasher : Routine my_comparison in /tmp/foo/crasher/jni/foo.c:9
Stack frame #03 pc 000191ac /system/lib/libc.so
Stack frame #04 pc 000083ea /data/local/ndk-tests/crasher : Routine foo in /tmp/foo/crasher/jni/foo.c:14
Stack frame #05 pc 00008458 /data/local/ndk-tests/crasher : Routine main in /tmp/foo/crasher/jni/main.c:19
Stack frame #06 pc 0000d362 /system/lib/libc.so
这些日志还是看的不是很明白,zoo.c:13 是说在zoo.cpp的第13行崩溃了的意思么? 希望能给讲解一下,感谢版主。
NDK-STACK tool这个是第三方工具还是Eclipse自带的呀?
adb logcat > crash.txt
这一句是用adb logcat工具把程序运行时的信息通过管道输出至crash.txt。当然你也可以把手机连上eclipse调试,然后把打印信息复制出来保存成crash.txt。
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump crash.txt
这一句是调用ndk-stack.exe复原crash.txt内容所指的崩溃堆栈。其中NDK是在环境变量里定义的android ndk根目录,PROJECT_PATH是在环境变量里定义的你的app编译目录。这两个变量都可以直接输入全路径(不用在环境变量里定义)。如果在windows环境变量中定义NDK和PROJECT_PATH,则在cmd里调用这个路径应当使用%NDK%和%PROJECT_PATH%,$符号是linux系统上的用法。
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump crash.txt > detail.txt
这句可以将还原的崩溃堆栈输出到detail.txt中
谢谢,正好解决我的苦恼。终于找到崩溃的地址。