易截截图软件、单文件、免安装、纯绿色、仅160KB

linux下的调试工具


linux下的调试工具
   随着XP的流行,人们越来越注重软件的前期设计、后期的实现,以及贯穿于其中的测试工作,经过这个过程出来的自然是高质量的软件。甚至有人声称XP 会淘汰调试器!这当然是有一定道理的,然而就目前的现实来看,这还是一种理想。在日常工作中,调试工具还是必不可少的。在Linux下,调试工具并非只有 gdb,还有很多其它调试工具,它们都各有所长,侧重方面也有所不同。本文介绍几种笔者常用的调试工具:
 
1. mtrace
在linux下开发应用程序,用C/C++语言的居多。内存泄露和内存越界等内存错误,无疑是其中最头疼的问题之一。glibc为解决内存错误提供了两种方案:
一种是hook内存管理函数。hook内存管理函数后,你可以通过记下内存分配的历史记录,在程序终止时查看是否有内存泄露,这样就可以找出内存泄露的地方了。你也可以通过在所分配内存的首尾写入特殊的标志,在释放内存时检查该标志是否被破坏了,这样就可以达到检查内存越界问题的目的。
另外一种方法更简单,glibc已经为第一种方案提供了默认的实现,你要做的只是在特定的位置调用mtrace/muntrace两个函数,它们的函数原型如下:
#include
void mtrace(void);
void muntrace(void);
你可能会问,在哪里调这两种函数最好?这没有固定的答案,要视具体情况而定。对于小程序来说,在进入main时调用mtrace,在退出main函数时调用muntrace。对于大型软件,这样做可能会记录过多的信息,分析这些记录会比较慢,这时可以在你所怀疑代码的两端调用。
另外,还需要设置一个环境变量MALLOC_TRACE,它是一个文件名,要保证当前用户有权限创建和写入该文件。glibc的内存管理器会把内存分配的历史信息写入到MALLOC_TRACE指定的文件中。
程序运行完毕后,使用mtrace工具分析这些内存分配历史信息,可以查出内存错误的位置(mtrace在glibc-utils软件包里)。
2. strace
在编程时,检查函数的返回值是一种好习惯。对于像glibc等标准C的函数,光检查返回值是不够的,还需要检查errno的值。这样的程序往往显得冗长,不够简洁。同时也可能是出于偷懒的原因,大多数程序里并没有做这样的检查。
这样的程序,一旦出现错误,用调试器一步一步定位错误,然后想法查出错误的原因,也是可以的,不过比较麻烦,对调试器来说有些大材小用,不太可取。这时,用strace命令可能会更方便一点。它可以显示各个系统调用/信号的执行过程和结果。比如文件打开出错,一眼就看出


相关文档:

(转)Linux下的CppUnit 的HelloWorld手记

转自:http://blog.csdn.net/panyuequn/archive/2009/12/07/4958454.aspx
版权声明:本文版权所属 Tx7do@上海半丁,可以随意复制传播,但是表把版权给扔啦=。=
操作系统系统:Ubuntu6,g++
软件版本:cppunit-1.10.2.tar.gz
(1)获得源码:
    到cppunit.sourceforge.net上下载源代码。将其复制到到l ......

linux笔试题目


一.填空题
1. 在Linux系统中,以     方式访问设备 。
2. Linux内核引导时,从文件     中读取要加载的文件系统。
3. Linux文件系统中每个文件用     来标识。
4. 全部磁盘块由四个部分组成,分别为               。
5. 链接 ......

Gambas:Linux 下的 Basic

简介
Basic 是使用的最广泛的、最简单的编程语言之一,尤其是对于新手。 迄今为止,最常用的 Basic 开发环境是 Microsoft 的 Visual Basic 集成开发环境。 近来,Linux 的使用范围已经延伸到了桌面环境。从最初的仅限于服务器应用,使得人都是领导者,它正在变成一个客户端计算机的操作系统,满足了类似阅读电子邮件、上网 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号