黑屏或特殊情形下查看对应进程的栈和调用情况
来源:互联网 发布:淘宝商品删除 重新上架 编辑:程序博客网 时间:2024/06/06 02:26
在黑屏问题分析时,可以分2个类别:
1、adb可用
2、adb不可用
在adb不可用时,我们需要短接reset pin让设备进入download mode,而后抓取完整的ram dump来进行后续分析。
在adb可用时,我们则可以先抓取adb日志,而后根据日志分析结果来查问题或看值得怀疑的进程堆栈。
adb下查堆栈有两个方法:cat /proc/process-ID/stack,debuggerd -b process-ID
下面列下利用debuggerd情况,他会列出该进程下所有线程的堆栈,我们可以查黑屏时例如resume、suspend或者backlight这些进程的主线程是否处于hang状态。
root@msm8226:/ # debuggerd -b 3513
debuggerd -b 3513
Sending request to dump task 3513.
----- pid 3513 at 2014-01-12 02:46:36 -----
Cmd line: android.process.media
"d.process.media" sysTid=3513
#00 pc 00021888 /system/lib/libc.so (epoll_wait+12)
#01 pc 0001063f /system/lib/libutils.so (android::Looper::pollInner(int)+98)
#02 pc 00010869 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92)
#03 pc 0006a6f9 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#06 pc 0003b67d /system/lib/libdvm.so (dvmCheckCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+8)
#07 pc 000297e0 /system/lib/libdvm.so
#08 pc 00030c6c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#09 pc 0002e304 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#10 pc 00063719 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+392)
#11 pc 0006b61f /system/lib/libdvm.so
#12 pc 000297e0 /system/lib/libdvm.so
#13 pc 00030c6c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#14 pc 0002e304 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#15 pc 00063435 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#16 pc 0004cbb7 /system/lib/libdvm.so
#17 pc 0003fc45 /system/lib/libdvm.so
#18 pc 0004d3bf /system/lib/libandroid_runtime.so
#19 pc 0004e0e3 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+354)
#20 pc 0000105b /system/bin/app_process
#21 pc 0000e49b /system/lib/libc.so (__libc_init+50)
#22 pc 00000d7c /system/bin/app_process
...................中间省略多个堆栈详情
"Binder_6" sysTid=12985
#00 pc 000206d4 /system/lib/libc.so (__ioctl+8)
#01 pc 0002cf3b /system/lib/libc.so (ioctl+14)
#02 pc 0001d3ed /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140)
#03 pc 0001daf7 /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
#04 pc 0001db8d /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
#05 pc 000219a5 /system/lib/libbinder.so
#06 pc 0000ea5d /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216)
#07 pc 0004d359 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68)
#08 pc 0000e58f /system/lib/libutils.so
#09 pc 0000d220 /system/lib/libc.so (__thread_entry+72)
#10 pc 0000d3b8 /system/lib/libc.so (pthread_create+240)
----- end 3513 -----
- 黑屏或特殊情形下查看对应进程的栈和调用情况
- windows下查看端口对应的进程和进程号
- windows下查看进程对应的程序
- Windows下查看进程对应的应用程序
- linux下查看端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- linux下查看某服务端口对应的进程ID
- linux下查看端口对应的进程号
- linux下查看监听端口对应的进程
- linux 查看进程“打开”的文件或文件对应的进程及网络状态
- linux 查看进程“打开”的文件或文件对应的进程及网络状态
- c#开发仓储销售管理平台--系统需求分析2
- 数据结构-哈希表
- 工作记录--makefile 伪目标
- ADS与axf
- IOS之表视图下拉刷新(UITableViewController)
- 黑屏或特殊情形下查看对应进程的栈和调用情况
- 程序编程——001字符串旋转
- 基于HTML5的可预览多图片Ajax上传
- 20140616
- 网站建设价格为什么有高有低?网站建设该如何选择?
- Enter键登陆
- Installing webrtc2sip on Ubuntu 12.04
- 11万奖金的诱惑:三星Galaxy S5终被ROOT
- MySQL存储过程的学习(二)