请教,securecrt log能通过adb抓android手机 log吗

Android中调试获取Log(转-总结)
log文件分为实时打印的,还有状态信息的两种
实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump, QXDM Log
状态信息的有:adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport
  adb logcat -b events -v time
打印系统事件的日志,比如触屏事件
  tcpdump 是很有用的,对于TCP/IP协议相关的都可以使用这个来抓,
  adb shell tcpdump -s 10000 -w /sdcard/capture.pcap,
  比如抓mms的时候的UA profile,browser上网的时候,使用proxy的APN下载,streaming的相关内容包括UA profile等。
其实一个就够了,那就是bugreport(命令adb bugreport>bugreport.log)。
里面包含有dmesg,dumpstate和dumpsys;
dmesg(命令adb shell dmesg > ldmesg_kernel.log)是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)
dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等;
dumpsys这个是关于系统所有进程Process的内容都在这个里面,adb shell dumpsys 这个命令还有更详尽的用法,
比如adb shell dumpsys meminfo system是查看system这个process的内存信息。
dumpsys [options]
显示内存信息
显示CPU信息
显示accounts信息
activity 显示所有的activities的信息
显示键盘,窗口和它们的关系
显示wifi信息
  通过adb logcat/bugreport可以实时的查看系统的log,以及系统的状态信息;
  如何将Log存储下来,保存当时系统运行的情况呢?
  可以通过一些脚本或者执行可执行程序来保存log信息,以便分析问题;
2 抓取实时log
int main(int argc, char *argv[])
//抓取main log
char path[] = "/xxx/xxx/app_main.log";
sprintf(cmd,"logcat -v time > %s",path);
fd = open(path, O_WRONLY|O_TRUNC|O_CREAT, 0777);
system(cmd);
//radio log
sprintf(cmd,"logcat -b radio -v time > %s",path);
system(cmd);
sprintf(cmd,"cat /proc/kmsg > %s",path);
system(cmd);
//bluetoolth log
sprintf(cmd,"hcidump -w %s","/data/bt.log");
system(cmd);
3 抓取状态log
int main(int argc, char *argv[])
//panic log 需要判断/proc/apanic_console是否存在
sprintf(cmd,"cp -R %s %s",from_dir,to_dir);
system(cmd);
//anr log /data/anr/
sprintf(cmd,"cp -R %s %s",from_dir,to_dir);
system(cmd);
//tombstones log /data/tombstones/ modem重启复位等
sprintf(cmd,"cp -R %s %s",from_dir,to_dir);
system(cmd);
//mdm log /data/tombstones/mdm/  modem重启复位
sprintf(cmd,"cp -R %s %s",from_dir,to_dir);
system(cmd);
panic log:
  它表示Linux kernel走到了一个不知道该怎么走下一步的状况,
  /view/519ceae009ed50
tombstone log:
  当系统发生tombstone的时候,kernel首先会上报一个严重的警告信号(signal),上层接收到之后,
进程的调试工具会把进程中当时的调用栈现场保存起来,并在系统创建了data/tombstones目录后把异常时的进程信息写在此目录里面,
开发者需要通过调用栈来分析整个调用流程来找出出问题的点。
   /thread--1.html
4 Runtime 可执行程序
编译成可执行程序,当然在实际使用中需要一些控制参数。
代码里如何执行这些可执行程序:
在底层可以通过system();
在层Runtime.getRuntime().exec();
String BIN_PATH = "/system/bin/catch_log";
Runtime.getRuntime().exec(BIN_PATH + " -x 1");
Runtime.getRuntime().exec("/system/bin/cat
"+path);
Runtime.getRuntime().exec("su -c chmod 777 /data/glad.txt");
Runtime.getRuntime().exec("/system/bin/sh /data/test.sh");
Runtime使得直接调用底层下的可执行程序或脚本成为可能
比如Linux下写个测试工具,直接编译后apk中通过Runtime来调用
或者写个脚本,apk中直接调用,省去中间层或者JNI;
参考文档:http://blog.csdn.net/zmyde2010/article/details/6123987
5 diag_mdlog
这是高通提供的抓取qxdm log的东东。
既包括AP端得,也包括BP端的;或者跟选择端口有关系,8064ap和modem端口独立;
代码位置:\vendor\qcom\proprietary\diag\mdlog\
使用diag_mdlog这个可执行程序来抓取log
需要Diag.cfg文件来配置过滤项,选择需要的Log信息。在使用前必须放置一个Diag.cfg文件。
Diag.cfg文件可以用QXDM生成;可以通过F12,Filtered View /Config 来生成Diag.cfg
这个程序一次只能执行一个,可以用kill -9 PID 将其强制结束
6 抓取Ap 端 memory dump
高通qpst工具Memory Dump App
要在downloader模式
需要修改的nv项:
或者使用emmc进入downloader模式。
打开连接手机, Get Regions,选择需要保存的Regin,SaveTo选择一个文件夹,确定即可
注意:这个路径下不能有中文,必须是英文的路径
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'查看: 2741|回复: 18
如何抓取kernel、mobile、modem的log
如题,现我们在77上遇到一个重启问题,需要我们这边抓取kernel、mobile、modem的log信息,kernel已经用串口工具抓取到了,但mobile、modem的log信息没有抓过,有谁抓取过的可否指导一下?谢谢!!
用功能机的Catcher应当是可以抓LOG的。
用T卡抓开机的log
在工程模式里面有选项,里面可以保存下来这两个log
哥们驱动的里面的log,是怎么抓的? 能否分享一下你的经验。不剩感激!
mikejoo 发表于
哥们驱动的里面的log,是怎么抓的? 能否分享一下你的经验。不剩感激!
就用串口工具抓就行了。
将波特率设置最高。
jianghuiyan 发表于
就用串口工具抓就行了。
将波特率设置最高。
我是用的串口工具的securecrt,波特率是921600。 打开摄像头驱动open函数里面的加个log。 打印不到。目前功能已经正常了,但是我还是的搞清楚,这个地方肯定可以跑到的。UINT32 GC2035Open(void)
& & & & vo
& & & & kal_uint16 sensor_id=0;
& & & & zoom_factor = 0;
& & & & Sleep(10);
& & & & //&&Read sensor ID to adjust I2C is OK?
& & & & for(i=0;i&3;i++)
& & & & & & & & sensor_id = (GC2035_read_cmos_sensor(0xf0) && 8) | GC2035_read_cmos_sensor(0xf1);
& & & & & & & & if(sensor_id != GC2035_SENSOR_ID)&&// GC2035_SENSOR_ID = 0x2035
& & & & & & & & {
& & & & & & & & & & & & return ERROR_SENSOR_CONNECT_FAIL;
& & & & & & & & }
& & & & SENSORDB(&GC2035 Sensor Read ID OK \r\n&);
& & & & GC2035_Sensor_Init();
& & & & GC2035_Write_More();
& & & & Preview_Shutter =GC2035_read_shutter();
& & & & return ERROR_NONE;
}& & & & /* GC2035Open() */
SENSORDB 这个函数有没有定义?
不会是一个NULL的函数吧?
mikejoo 发表于
我是用的串口工具的securecrt,波特率是921600。 打开摄像头驱动open函数里面的加个log。 打印不到。目前 ...
SENSORDB 这个函数有没有定义?
不会是一个NULL的函数吧?
jianghuiyan 发表于
SENSORDB 这个函数有没有定义?
不会是一个NULL的函数吧?
必须定义了。 #define SENSORDB printk
一牛网人才云频道正式上线了,填写简历找份高大上的工作吧!
完善简历更有100个RD币奖励!
赶快带着RD币参与抽奖活动!各种话费,开发板的兑换,海量活动等你来战!
春节万元现金红包嗨不嗨?
一牛网首位最6的资料达人是谁
那些年iPhone6S都被谁抽走了
“一牛网在线”已正式上线,这里有最新的行业资讯,有深入的技术探讨,更有各种奇闻趣事。
现在关注上方二维码,并回复论坛用户名,即可获得20RD币
秒后自动关闭
论坛资料为网友自由上传,与本论坛无关。
Powered by
关注,回复用户名送20rd币trackbacks-0
网上搜了N多解决方法,但是很多将log级别的,用法的,更多的是如何在logcat中设置filter进行log的过滤与查看,但是我遇到的问题是,模拟器怎么着都OK,但真机、手机进行开发调试的时候却看不到log信息,这是很恼人的事情(毕竟模拟器跑起来太慢了)。
刚开始没有查到好的方法,就用try catch把exception打到一个alertdialog中,但是这样只能看个大概,绕这个圈子没用,最后还是在eoe的论坛上看到了解决办法,恐怕原因是rom本身没有打开log的开关
问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出问题原因:一些rom默认关闭logcat问题说明:ddms中设备名字显示为问号不影响,即adb get-serialno显示为问号不影响.解决方法:1.需要root权限(部分rom不需要)2.打开logcat,并设置level,执行命令如下(android 升级之后 adb 在 platform-tools中,不在tools中)adb shellecho 1 & /sys/kernel/logger/log_main/enable说明:将1写入日志开关文件,1为开,0为关echo 2 &/sys/kernel/logger/log_main/priority说明:将代表level的2写入优先级文件3.重启adb,如果使用eclipse,先关闭eclipse,再重启adb,再启动eclipseadb kill-serveradb start-server4.此时logcat应该可以工作了,如果仍旧不工作,则更新adbandroid update adb5.重复第三步,此时logcat应该可以工作了,如果仍旧不工作,找到个人主目录下的android目录,如C:\Documents and Settings\Administrator\.android找到这个目录下的adb_usb.ini文件,其内容默认只有三行,全为注释,在后面添加一行,内容为0x12d16.重复第三步,此时logcat应该可以工作了
阅读(...) 评论()如何抓取android logcat日志_百度知道
如何抓取android logcat日志
提问者采纳
输入命令logcat -v time -s ' &#47,在手机助手的sdcard中建立一个1.log5,很高兴为您解答。1;1,查看结果如若满意,望采纳,输入抓取命令;sdcard/1;sdcard&#47,安装SDK(参考android sdk环境安装)2,请点击【追问】希望我的回答对您有所帮助,使用数据线链接手机,请点击右侧【采纳答案】:E&#39.log9:E'mmt&#47.log的文件3:-v time
就会显示出时间8;mmt/ &#47,程序运行cmd4:logcat -s &#39,分不清楚是那个时间段所造成的后果7,查看日志抓取文件;*; & &gt您好,使用手机崩溃一次6;*,加入命令,如若还有问题
来自团队:
相关专业回答
您好,很高兴为您解答。
1,安装SDK(参考android sdk环境安装)
2,使用数据线链接手机,在手机助手的sdcard中建立一个1.log的文件
3,程序运行cmd
4,输入抓取命令:logcat -s '*:E' & /mmt/sdcard/1.log
5,使用手机崩溃一次
6,查看日志抓取文件,分不清楚是那个时间段所造成的后果
7,加入命令:-v time
就会显示出时间
8,输入命令logc...
其他类似问题
为您推荐:
logcat的相关知识
其他2条回答
adb shell下logcat
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 securecrt保存log 的文章

 

随机推荐