博客首页
注册
建议与交流
排行榜
加入友情链接
宝宝相册的专门空间
推荐
投诉
搜索:
帮助
飞翔,嵌入式linux
linux嵌入式系统必将大行于天下。专注于linux嵌入式系统的搭键,专注于高效稳定软件的开发,专注底层程序调试技术。
feixiang.cublog.cn
管理博客
发表文章
留言
收藏夹
· 嵌入式资源
}
· 技术文章
· Arm资源
· 技术博客
· linux论坛及网站
}
· 技术文章
· 电子图书
· 技术文章
· 调试工具
}
· 技术文章
· LFS讨论区
博客圈
音乐
相册
文章
· Android
· 邮件服务器
· 硬件
· 关注性能
· 内存管理
· 嵌入式平台
}
· BootLoader
· 交叉编译工具链
}
· glibc
· gcc
· FLASH
· 底层调试技术
· Linux平台技术分析
· 程序设计
· 个人观点
· linux基础知识
· 软件工程
· VC
· License
首页
关于作者
姓名:飞翔 Email:loughsky@sina.com 职业:IT 年龄:32 位置:北京 个性介绍:专注在嵌入式操作系统,以及高效程序调试
||
<<
>>
||
我的分类
文章列表 - 个人观点
曲线工具协议
<DIV> <P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 21pt"><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">PC</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端最多同时显示</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">4</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个坐标系,</SPAN><SPAN lang=EN-US><FON……
查看全文
发表于:2007-05-24 ┆
阅读(836)
┆
评论(0)
做了一个工具,查看嵌入式系统的cpu和内存
<DIV>经过51,这个工具终于具备了雏形,可以初步的跑起来了,只是不知道向下该如何发展了。</DIV> <DIV> </DIV> <DIV>我们在分析嵌入式系统软件性能的时候,一个最直接的办法就是查看当前系统cpu利用率和物理内存占用量,而以前我们在嵌入式系统中,只能使用top命令来查看。</DIV> <DIV>它的问题在于,它只能看一个点,不能看内存和cpu的一个趋势,看前后比较。</DIV> <DIV> </DIV> <DIV>因此,我做了一个工具,类似于windows的任务管理器,能够画出cpu和物理内存的曲线。</DIV> <DIV> </DIV> <DIV>主要架构,在嵌入……
查看全文
发表于:2007-05-06 ┆
阅读(1361)
┆
评论(4)
关于利用malloc hook的方法跟踪内存分配工具的设想
<DIV>在做程序调试的时候,内存的管理占据了很大的一个部分。</DIV> <DIV>主要面临以下的几个问题:</DIV> <DIV> 1、内存泄露,导致系统内存耗尽。</DIV> <DIV> 2、内存占用很大,不知道内存都用在什么位置了。</DIV> <DIV> <DIV> 3、访问内存错误,导致SIGEVG错误,程序崩溃。</DIV> <DIV> </DIV></DIV> <DIV>计划采用的技术:</DIV> <DIV> 1、通过injectso方法,注入malloc hook,对于内存的分配和回收,记录log,撰写工具,对特定的log进行分析。从而总结什么内存没有释放。同时,使用dwarf开发包……
查看全文
发表于:2007-04-13 ┆
阅读(750)
┆
评论(0)
计划开始学习shellcode
<DIV>下一步准备做个工具,跟踪另外一个程序的内存使用情况,计划使用malloc hook的方式。</DIV> <DIV>目前malloc hook的一个局限是,要求程序自身要做一些代码改动,运行hook程序。现在计划采用shellcode的方式,将对应的hook在外面注入运行,这样就不必改动源程序。</DIV> <DIV>一个难点在于:</DIV> <DIV> malloc的hook函数必然涉及到一些动态连接库。如果在外面注入代码执行的话,会不会与动态连接有冲突。</DIV> <DIV> </DIV> <DIV>难点2:</DIV> <DIV> 在malloc钩子函数中,使用了d……
查看全文
发表于:2007-04-03 ┆
阅读(653)
┆
评论(0)
缓冲区溢出攻击—— 检测、剖析与预防
<DIV><A href="http://book.csdn.net/bookfiles/228/index.html">http://book.csdn.net/bookfiles/228/index.html</A></DIV> <DIV>推荐一个连接,这里对glibc的堆栈管理,讲的比较详细。</DIV> <DIV> </DIV> <DIV>最近计划写个程序,来打印出glibc分配内存时所使用到的 数据结构。malloc_chunk。</DIV> <DIV> </DIV> <DIV>现在的问题是,还是不太清楚glibc什么时候将内存返还给内核,应该有个系统调用。</DIV> <DIV></DIV>
查看全文
发表于:2007-03-26 ┆
阅读(678)
┆
评论(0)
关于对进程内存管理工具的一些思考
<DIV>开始计划使用ptrace拦截系统调用brk、mmap,来做一个内存检测的一个工具,每次拦截住分配的指针,与指针分配的大小。但通过研究发现,free并不进行系统调用,所以这条路几本不可行。</DIV> <DIV> </DIV> <DIV>下一步可以考虑来系统做动态连接的时候,连接到另外一个库,从而替换掉标准的malloc与free,从而做到内存使用的检测。</DIV> <DIV> </DIV> <DIV>还有一个想法,通过研究malloc的库函数发现,它为每个进程分配一个链表。那么我们是否可以通过漫游这个链表,来获得有关内存访问的信息呢?</DIV> <DIV></DIV>
查看全文
发表于:2007-03-18 ┆
阅读(654)
┆
评论(0)
计划写一个分析elf的库
<DIV>计划写一个分析elf文件的库,可以根据运行代码的eip,通过symbolsection,来分析出其所在的函数。</DIV> <DIV>根据eip,通过debug信息,来分析出其所在的行。</DIV> <DIV> </DIV> <DIV>编译的时候报了个错误:</DIV> <DIV>elfsdk.c:122: sizeof applied to an incomplete type<BR>elfsdk.c:123: dereferencing pointer to incomplete type<BR>elfsdk.c:124: dereferencing pointer to incomplete type<BR></DIV> <DIV>烦恼了半天,最后才发现,原来是它,以前一直没有注意过。</DIV> <DIV> </DIV> <DIV><SPAN class=postbody>typedef struct与struct的区别 <BR><BR><BR>1. 基本解释 <BR><BR> typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 <BR><BR> 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 <BR><BR> 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 <BR><BR><BR>2. typedef & 结构的问题 <BR><BR> 当用下面的代码定义一个结构时,编译器……
查看全文
发表于:2007-03-15 ┆
阅读(830)
┆
评论(1)
无题
<DIV>这两天看了看linker and loader,材料是不错,可以讲的比较范,比较理论,和实际的差一些。</DIV> <DIV> </DIV> <DIV>这两天一直忙于修改CR,上来的时间也少了,技术研究上花的时间也少了。</DIV> <DIV> </DIV> <DIV>这些天感觉很累,也有些烦躁,看来自己是该运动一下了。</DIV> <DIV> </DIV> <DIV>发现自己有些浮躁,有用的东西看了不几眼就放倒一边了。</DIV> <DIV> </DIV> <DIV>下决心,踏踏实实的做点东西,不要太贪多了。</DIV> <DIV> </DIV> <DIV>看好一个东西,想去研究,等差不多了再考虑其他的。</DIV> <DIV> </DIV> <DIV>我现在主要目标就是研究修改,strace,使其能够打印出堆栈来。</DIV> <DIV> </DIV> <DIV>今天尝试根据指令地址,转换成其所在的函数。</DIV> <DIV>主要思路是,从elf文件中,获取elf的头,然后找到section的头,再从section头中找到相应的section。</DIV> <DIV> </DIV> <DIV>现在发觉自己在linux上写程序,还差很多。</DIV> <DIV> </DIV> <DIV>要继续努力了。</DIV> <DIV></DIV>
查看全文
发表于:2007-03-14 ┆
阅读(873)
┆
评论(1)
下一步有两件事
<DIV>一个是要弄清楚机器代码所对应的函数,这主要是我在前面修改strace,打印堆栈时,找到对应的函数名称时,需要用。这个应该相对简单,只需要弄清楚elf的格式与符号表。</DIV> <DIV>再进一步就是,能通过debug信息,把机器代码与源码对应关系搞清楚,这样的能够更好的定位故障。虽然强大的gdb已经为我们做了这些东西,但我仍想弄明白,这样为我将来的目标提供编写高效率程序提供相应工具有帮助。目前的任务就是学习《linker and loader》。</DIV> <DIV> </DIV> <DIV>再下一步,把内存搞清楚,valgrin有比较完善的文档,应该好好学习一下。</DIV> <DIV> </DIV> <DIV>原来的另一个目标,把嵌入式系统弄一弄,只能往后放一放了。</DIV> <DIV> </DIV> <DIV>关于为开发高效程序,提高开发效率编写工具的想法,收集到几个需求:</DIV> <DIV>1、对于已经发布程序的调试,针对程序收到异常信号,退出的问题,将报错的堆栈打印出来。</DIV> <DIV> 目前只是把堆栈中的函数调用打印出来了,下一步把函数名称打印出来,把参数值打印出来。考虑是否能打印出具体的代码行。</DIV> <DIV> </DIV> <DIV>2、考虑程序的内存泄漏等。</DIV> <DIV>&……
查看全文
发表于:2007-03-12 ┆
阅读(623)
┆
评论(0)
工作日志
<DIV>今天看完了信号这一章,虽然是看完了,可看的很简略,肯定是需要看第二遍的.考虑春节在家带哪本书,是否需要上网,想尽快的学会这些内容,算起来要看的书太多了.</DIV> <DIV>深入理解linux内核</DIV> <DIV>学习linux下汇编语言,要求不高,要能看懂代码.</DIV> <DIV>学习linux shell能够搭建系统.</DIV> <DIV>学习嵌入式linux能为linux手机搭建操作系统.</DIV> <DIV>学习linux权威指南,为linux手机配置各种服务.</DIV> <DIV>还有linux驱动程序</DIV> <DIV> </DIV> <DIV>争取6月之前完成,算起来时间很紧啊.</DIV> <DIV></DIV>
查看全文
发表于:2007-02-12 ┆
阅读(998)
┆
评论(2)