debug
introduce debug skills
优惠券已抵扣
余额抵扣
还需支付
¥79.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
剥丝机器人
这个作者很懒,什么都没留下…
展开
-
get memory corruptions earlier
0 - adb root && adb shell1 - mount -t debugfs /d /d2 - cd /d/osip3 - cat cmdline # copy the current command line4 - echo slub_debug=FPZU > cmdline5 - cat cmdline # check that it finishes with "s转载 2013-05-24 16:08:21 · 1091 阅读 · 0 评论 -
Fatal signal 11问题的解决方法
项目问题,目前已解决;在此记录。前些天在调试Camera模块;发现相同的代码在厂家提供的环境里边编译、就是ok的,在我们的源码树中编译,将HAL库推进去后、就会signal 11退出。一、现象[plain] view plaincopyF/libc ( 4250): Fatal signal 11 (SIGSEGV) at 0x转载 2015-10-07 16:37:07 · 1512 阅读 · 0 评论 -
ION 内存管理
what is ION?ION 内存管理从android4.0开始被引入ION模块是可扩展的(API都是统一的),支持各种形式的内存分配方式,可以表述不同的硬件资源和他们的一些限制ION 支持连续与不连续内存的分配ION 给Kernel and User space processes提供了相应的APIs 当前支持的memory typeION_HEAP_TYPE_CARVE转载 2016-08-03 15:24:22 · 649 阅读 · 0 评论 -
std::vector::clear
原型:#include void clear();函数clear()删除储存在vector中的所有元素. 如果vector的元素是一些object, 则它将为当前储存的每个元素调用它们各自的析构函数(destructor). 然而, 如果vector储存的是指向对象的指针, 此函数并不会调用到对应的析构函数. 在第二种情况下, 为了完全删除vector中的元素则应使用一个类似于下的循环转载 2016-08-04 11:24:42 · 1680 阅读 · 0 评论 -
android 内存泄漏分析过程详解
1 运行自动化测试工具; 跑用例,譬如执行100遍2 在运行之初观察内存分配情况; 2.1 查看进程号C:\Users\Administrator>adb shell ps | find "camera"camera 292 1 114960 14452 ffffffff b6f178bc S /system/bin/mm-qcamera-daemonsy转载 2016-08-04 11:32:08 · 2406 阅读 · 0 评论 -
ION基本概念介绍和原理分析
转载前的话:ION将内核态形形色色的内存分配纳入统一的管理接口之中,更重要的设计意图是为内存在不同用户态进程之间传递和访问提供了支持。每个ion_buffer与一个struct file关联,其handle纳入进程file desc空间而不是/dev/ion设备内单独的handle空间,方便之处如下:每个buffer一个handle,便于更灵活地细粒度地控制每个buffer的使用周期;转载 2016-08-04 11:33:53 · 2845 阅读 · 0 评论 -
ION基本概念介绍和原理分析
转载前的话:ION将内核态形形色色的内存分配纳入统一的管理接口之中,更重要的设计意图是为内存在不同用户态进程之间传递和访问提供了支持。每个ion_buffer与一个struct file关联,其handle纳入进程file desc空间而不是/dev/ion设备内单独的handle空间,方便之处如下:每个buffer一个handle,便于更灵活地细粒度地控制每个buffer的使用周期;转载 2016-08-04 11:35:43 · 785 阅读 · 0 评论 -
sp<> 强指针类的用法
文一:转:http://wangjun-1985.spaces.live.com/blog/cns!E9070276AAF56C8E!472.entry在Android 中可以广泛看到的template class Sp 句柄类实际上是android 为实现垃圾回收机制的智能指针。智能指针是c++ 中的一个概念,因为c++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为转载 2016-08-04 11:38:32 · 3234 阅读 · 0 评论 -
GDB笔记(二):条件断点、命令列表、监视点
GDB笔记(二):条件断点、命令列表、监视点Posted by lesca on 2011/05/21 Leave a comment (0) Go to comments条件断点break if用法:break [break-args] if (condition)例如:break main if argc > 1break 180 if (st转载 2017-09-03 09:13:20 · 17348 阅读 · 0 评论 -
gdb break 断点设置(一)
http://sourceware.org/gdb/current/onlinedocs/gdb二、断点设置gdb断点分类:以设置断点的命令分类:breakpoint可以根据行号、函数、条件生成断点。watchpoint监测变量或者表达式的值发生变化时产生断点。catchpoint监测信号的产生。例如c++的throw,或者加转载 2017-10-27 15:21:05 · 1613 阅读 · 0 评论 -
kernel文件动态调试功能 -- dynamic_debug 打开及半闭
Kernel def_config中需要打开以下两个宏CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y (1)step1:open pr_debugadb rootadb remountadb shell打开动态调试#echo 'file sprdfb_main.c +p' > /sys/kernel/deb转载 2018-01-11 17:00:01 · 2437 阅读 · 0 评论 -
如何打开pr_debug调试信息
如何打开pr_debug调试信息2014年09月05日 ⁄ 综合⁄ 共 2396字 ⁄ 字号小 中 大 ⁄ 评论关闭如何打开pr_debug调试信息以DMA的调试为例,先来看看一个pr_debug函数调用 pr_debug("%s: %s (%s)\n", __func__, cha转载 2015-05-25 18:17:30 · 2719 阅读 · 0 评论 -
printk_timed_ratelimit 使用 , 可以防止 打太多log kernel 发生 soft lockup卡死
+ if (printk_timed_ratelimit(&max_err_time, 10 * 1000)) \+ pr_warn("CIF ISP2.0 %s: " fmt, \+ __func__, ## arg); \Nameprintk_timed_r原创 2015-04-07 18:03:33 · 1849 阅读 · 0 评论 -
irq come after suspend
防止中断来后访问掉电的设备。staticint xx_runtime_suspend(struct device*dev){drvdata->xx_suspended= 1;disable_irq(pdev->irq);}staticint xx_runtime_resume(struct device*dev){drvd转载 2013-05-24 15:00:26 · 1294 阅读 · 0 评论 -
dump_stack 和 trigger_all_cpu_backtrace
182 /* 183 * The architecture-independent dump_stack generator184 */185 void dump_stack(void) 186 { 187 unsigned long bp; 188 unsigned long stack; 189原创 2013-05-27 10:55:57 · 2321 阅读 · 0 评论 -
call_chain & dump_trace
调用链是剖析工具中常备的一种显示方式,可以为用户呈现明确的函数调用关系,在perf中,可以根据调用链分析主函数的sample分布到了哪些子函数中。在内核调试中,根据调用链可以得到出错函数的上层调用者是谁。调用链的实现其实很简单,就是遍历函数栈,在x86中,bp寄存器指向的内存位置存放的是旧栈帧基地址,这个位置之上(高地址处)是函数返回地址,因此在函数返回时pop %ebp,就是把旧栈帧地址转载 2013-05-27 16:24:52 · 1743 阅读 · 0 评论 -
Linux系统下/proc/meminfo详解
"Free," "buffer,""swap," "dirty." What does it all mean? If you said,"something to do with the Summer of '68", you may need a primer on'meminfo'. The entries in the /proc/meminfo can helpexplain w转载 2013-10-15 11:07:23 · 1370 阅读 · 0 评论 -
Android Tombstone解决步骤
这周和同事一起解了个tombstone的bug, 记录下分析的过程,免得以后又忘记。。。1>log的分析pid: 122, tid: 14745, name: Binder_2 >>> /system/bin/mediaserver signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000058 eax 0000转载 2013-10-31 10:01:21 · 984 阅读 · 0 评论 -
Printk的loglevel和日志记录分析
Printk的loglevel和日志记录分析(分析版本是ubuntu7.10,内核源码是2.6.23) 首先,printk有8个loglevel,定义在中,其中数值范围从0到7,数值越小,优先级越高。#define KERN_EMERG "" /* system is unusable */ 系统崩溃#define KERN_ALERT转载 2013-01-05 16:21:22 · 761 阅读 · 0 评论 -
Linux内核里的DebugFS
DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。通常情况下,最常用的内核调试手段是printk。但printk并不是所有情况都好用,比如打印的数据可能过多,我们真正关心的数据在大量的输出里不是那么一目了然转载 2014-05-13 09:19:48 · 715 阅读 · 0 评论 -
定位Oops的具体代码行
[保留] 定位Oops的具体代码行http://www.chinaunix.net 作者:albcamus 发表于:2009-06-05 09:43:38【发表评论】 【查看原文】 【Linux讨论区】【关闭】( 来自Linus Torvalds的讨论: https://groups.google.com/group/linux.kernel/browse_thread/转载 2015-02-12 16:02:30 · 882 阅读 · 0 评论 -
比较全面的gdb调试命令
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更转载 2015-02-12 16:33:17 · 428 阅读 · 0 评论 -
定位Oops错误代码行
定位Oops错误代码行【整理】 2012-03-28 10:09:26| 分类:linux学习 |举报|字号 订阅[17184178.672000] Bad mode in data abort handler detected[17184178.672000] Internal error: Oops - bad mode: 0 [#1] PR转载 2015-02-12 16:38:55 · 1063 阅读 · 0 评论 -
gdb调试带参数程序
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: > cc -g hello.c -o hello > g++ -g hello.cpp -o hello 如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内存地址转载 2018-01-11 17:01:21 · 632 阅读 · 0 评论