
调试
lcw_202
这个作者很懒,什么都没留下…
展开
-
巧用backtrace系列函数,在不具备gdb环境的Linux系统上大致定位段错误位置
2010年8月24日DDD发表评论阅读评 论21: 段错误产生的原因简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存, 尤其常见的是访问0地址.一旦一个程序发生了越界访问,系统就采取内存保护措施,并给那个程序发送 SIGSEGV信号,程序接到那个信号后就知道segmentation fault出现了。想对”段错误”有更详细的了解可以去阅读“Linux下的段错误产生的原因及调试方法” 这篇文章,本文的 内容基本是从那文章里提取出来的。2: SIGSEGV转载 2010-12-23 15:44:00 · 3820 阅读 · 0 评论 -
Unix调试的瑞士军刀:lsof
http://heikezhi.com/2011/06/19/swiss-army-knife-of-unix-debugging-lsof/ 这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀。 Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美—转载 2012-03-03 21:58:53 · 882 阅读 · 0 评论 -
调查用户空间程序某函数最常调用路径
原创文章,转载请注明: 转载自Erlang非业余研究 本文链接地址: 调查用户空间程序某函数最常调用路径 在做系统调优或者调查性能问题的的时候,比如说调查一个锁的性能问题。 这把锁的代码会有很多路径会调用, 我们可以在锁的地方设个probe点,但是我们无法知道那个路径是最经常调用的。 所以我就写了个stap脚本来解决这个问题,代码在RHEL 5.4/6下都调试没有问题的。转载 2012-02-24 13:46:17 · 712 阅读 · 0 评论 -
Linux Call Trace原理分析
Linux Call Trace原理分析 分类: Linux 2011-01-03 21:01 1891人阅读 评论(0) 收藏 举报 本文介绍了在Linux环境下根据EABI标准进行call trace调试的一般性原理。 本文所说的call trace是指程序出问题时能把当前的函数调用栈打印出来。 本文只介绍了得到函数调用栈的一般性原理,没有涉及Linux的core dum转载 2012-02-24 13:22:57 · 1510 阅读 · 0 评论 -
调研内核调用栈方便的工具 kmalloc-top
原创文章,转载请注明:转载自Erlang非业余研究 本文链接地址:调研内核调用栈方便的工具 kmalloc-top 我们在研究内核的时候,看了内核代码后,就想着某个函数被谁谁调用。 调用路径有很多条,有热门的,有偏门的,但从代码不大容易看出。 如果我们能和gdb那样在函数上设个断点,看下内核函数的调用栈就清楚了。 但是如何统计热门路线呢?用systemtap就可以,参看这里,这里。转载 2012-02-24 13:44:44 · 1498 阅读 · 0 评论 -
/proc/stat explained
/proc/stat explained Various pieces of information about kernel activity are available in the /proc/stat file. All of the numbers report转载 2011-08-29 14:07:14 · 521 阅读 · 0 评论 -
PROC系列之六---/proc/<pid>/stat
3.3.1. /proc//stat 包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。 [root@localhost ~]# cat /proc/6873/stat 6873 (a.out) R 6723 6873 6723 34819转载 2011-08-29 14:18:28 · 484 阅读 · 0 评论 -
gdb简单命令手册
应用gdb进行调试 下面是简单命令,另外网上可以找到 gdb quick reference .pdf看到更多命令列表 1. 启动 gdb 应用程序名 gdb 应用程序名 core文件名 gdb 应用程序名 pid转载 2011-08-30 10:25:29 · 672 阅读 · 0 评论 -
linux下网卡网络流量监控工具
转载:http://blog.youkuaiyun.com/yunsongice/article/details/5581971 个人比较喜欢iftop,它能动态的用简单的ASC图标识网卡当前流量 首行是网络流量刻度, 中间是与其它机器的流量,有个白底的bar直观的标识流量变化,后转载 2011-08-11 10:04:37 · 647 阅读 · 0 评论 -
objcopy使用说明
<br />objcopy用于将object的部分获全部内容拷贝到另一个object,从而可以实现格式的变换。<br />objcopy可用用于将文件转换成S-record格式或者raw二进制格式。<br />例如,<br /> xxxx-elf-objcopy –O srec test.o test.s19<br />则将test.o转换成s-record文件中。通常涉及到text段。<br /> xxxx-elf-objcopy –O binary test.o test原创 2011-03-31 22:22:00 · 1409 阅读 · 0 评论 -
一种OOPS定位方法
当系统OOPS时,会打印类似EIP is at symname+offset/size [modname]的消息,比如EIP is at filp_close+0xa/0x5a,从中可以知道OOPS时的函数名是symname,但是不能知道是哪一行产生OOPS,对binutils的 elf.c,simple.c,addr2line.c作些小修改就可以得到具体的行数信息。<br />1. 下载源码并解压 ftp://sourceware.org/pub/binutils/snapshots/ (我下的是2.1转载 2011-03-08 14:15:00 · 847 阅读 · 0 评论 -
Linux oops
<br />什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。<br />在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux内核也会抱歉的对我们说:“哎呦(Oops),对不起,我把事情搞砸了”。Linux内核在发生ker转载 2011-03-08 14:07:00 · 1392 阅读 · 1 评论 -
关于定位linux OOPS的几篇文章
第一篇:定位Oops的具体代码行 作者:albcamus(百無一用書生)(来自Linus Torvalds的讨论:[url]https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111[/url]又,[url]http://kerneltrap.org/Linux/Further_Oops_Insights[/url]) 例如这样的一个Oops:转载 2011-03-07 12:56:00 · 911 阅读 · 0 评论 -
调试器工作原理——基础篇
调试器工作原理——基础篇 http://eli.thegreenplace.net/2011/01/23/how-debuggers-work-part-1/ http://www.hellogcc.org/ 英文原文:Eli Bendersky 编译:伯乐在线— 陈舸 本文是一系列探究调试器工作原理的文章的第一篇。我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从转载 2012-12-21 17:53:09 · 701 阅读 · 0 评论