Linux调试工具

1. 使用printf调试

#ifdef DEBUGphp

Printf(“valriable x has value = %d\n”, x)html

#endif前端

而后在编译选项中加入-DDEBUGnode

 

更复杂的调试应用如:python

#define BASIC_DEBUG 1linux

#define EXTRA_DEBUG 2c++

#define SUPER_DEBUG 4程序员

 

#if (DEBUG &EXTRA_DEBUG)web

       printf …算法

#endif

在这种状况下若是设置编译器标志为-DDEBUG=5,将启用BASIC_DEBUG和SUPER_DEBUG。 标志-DDEBUG=0将禁用全部的调试信息,也能够在程序中添加以下语句:

#ifndef DEBUG

#define DEBUG 0

#endif

 

2.使用gdb调试

Gcc编译的时候要加上-g选项,让编译器在程序中添加额外的调试信息。若是正式发布,这些调试信息可使用strip命令删除。

Gdb:

Backtrace栈跟踪

 

3. 程序静态分析工具splint

splint功能:

常识性测试并产生一些警告信息。它能够检测未经赋值的变量使用,函数的参数未使用等异常状况。

 

4. 程序执行性能分析工具prof/gprof

显示执行所花费的时间具体都用在什么操做上。

 

5. 内存调试

ElectricFence函数库和valgrind能够用来检查动态内存分配的一些问题,包括内存泄漏。

 

 

 

 

Linux下的调试工具

 

随着XP的流行,人们愈来愈注重软件的前期设计、后期的实现,以及贯穿于其中的测试工做,通过这个过程出来的天然是高质量的软件。甚至有人声称XP会淘汰调试器!这固然是有必定道理的,然而就目前的现实来看,这仍是一种理想。在平常工做中,调试工具仍是必不可少的。在Linux下,调试工具并不是只有gdb,还有不少其它调试工具,它们都各有所长,侧重方面也有所不一样。本文介绍几种笔者经常使用的调试工具:

 

1.         mtrace

linux下开发应用程序,用C/C++语言的居多。内存泄露和内存越界等内存错误,无疑是其中最头疼的问题之一。glibc为解决内存错误提供了两种方案:

 

一种是hook内存管理函数。hook内存管理函数后,你能够经过记下内存分配的历史记录,在程序终止时查看是否有内存泄露,这样就能够找出内存泄露的地方了。你也能够经过在所分配内存的首尾写入特殊的标志,在释放内存时检查该标志是否被破坏了,这样就能够达到检查内存越界问题的目的。

 

另一种方法更简单,glibc已经为第一种方案提供了默认的实现,你要作的只是在特定的位置调用mtrace/muntrace两个函数,它们的函数原型以下:

       #include <mcheck.h>

       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命令可能会更方便一点。它能够显示各个系统调用/信号的执行过程和结果。好比文件打开出错,一眼就看出来了,连错误的缘由(errno)都知道。

 

3.         binutil

binutil是一系列的工具,你可能根本不知道它们的存在,可是没有它们你却步履维艰。Binutil包括下列工具:

  • ld - the GNU linker.
  • as - the GNU assembler.
  • addr2line - Converts addresses into filenames and line numbers.
  • ar - A utility for creating, modifying and extracting from archives.
  • c++filt - Filter to demangle encoded C++ symbols.
  • gprof - Displays profiling information.
  • nlmconv - Converts object code into an NLM.
  • nm - Lists symbols from object files.
  • objcopy - Copys and translates object files.
  • objdump - Displays information from object files.
  • ranlib - Generates an index to the contents of an archive.
  • readelf - Displays information from any ELF format object file.
  • size - Lists the section sizes of an object or archive file.
  • strings - Lists printable strings from files.
  • strip - Discards symbols.
  • windres - A compiler for Windows resource files.

其中部分工具对调试极有帮助,如:

你能够用objdump反汇编,查看目标文件或可执行文件内部信息。

你能够用addr2line把机器地址转换到代码对应的位置。

你能够用nm查看目标文件或可执行文件中的各类符号。

       你能够用gprof分析各个函数的使用状况,找出性能的瓶颈所在(这须要加编译选项)。

 

4.         ld-linux

如今加载ELF可执行文件的工做,已经落到ld-linux.so.2头上了。你可能会问,这与有调试程序有关系吗?有的。好比,在linux中,共享库里全部非static的函数/全局变量都是export的,更糟的是C语言中没有名字空间这个概念,致使函数名极易冲突。在多个共享库中,名字冲突引发的BUG是比较难查的。这时,你能够经过设置LD_ DEBUG环境变量,来观察ld-linux.so加载可执行文件的过程,从中能够获得很多帮助信息。LD_ DEBUG的取值以下:

  • libs        display library search paths
  • reloc       display relocation processing
  • files       display progress for input file
  • symbols     display symbol table processing
  • bindings    display information about symbol binding
  • versions    display version dependencies
  • all         all previous options combined
  • statistics  display relocation statistics
  • unused      determined unused DSOs
  • help        display this help message and exit

5.         gdb

对于真正意义的调试器来讲,gdb在linux下是独一无二的。它有多种包装,有字符界面的,也有图形界面的,有单独运行的,也有集成到IDE中的。gdb功能强大,图形界面的gdb容易上手一点,但功能无疑受到了一些限制,相信大部分高手仍是愿意使用字符界面的。Gdb太经常使用了,这里再也不多说。

 

6.         gcc/boundschecker

相信不少人用过win32下的BoundsChecker(Compuware公司)和Purify(IBM公司)两个工具吧。它们的功能实在太强大了,绝非能经过重载内存管理函数就能够作到,它们在编译时插入了本身的调试代码。

 

gcc也有个扩展,经过在编译时插入调试代码,来实现更强大的检查功能。固然这要求从新编译gcc,你能够到http://sourceforge.net/projects/boundschecking/ 下载gcc的补丁。它的可移植性很是好,笔者曾一个ARM 平台项目里使用过,效果不错。

 

7.         valgrind

最好的东西每每最后才见到。Valgrind是个人最爱,用习惯了,写的程序不在valgrind下跑一遍,就像没有写单元测试程序同样,有点放心不下。它有BoundsChecker/Purify的功能,并且速度更快。

 

有点遗憾的是valgrind目前只支持x86平台,固然,这对大多数状况已经足够了。

 

你能够到http://valgrind.org/ 下载最新版本。

 

 

 

Linux 平台上的C语言调试工具!

Debugging Tools for C on Linux Platform
http://www.linuxgazette.com/node/view/8755

Submitted by Nikhil Bhargava on Tue, 02/17/2004 - 14:37. Articles | General Interest
This article talks about debugging tools for applications in C on Linux platforms. Most of the tools are freely available on all major platforms with very wide user support. The tools help in static analysis of code as well as assist in dynamic evaluation of code.

Please note that tools listed here are suggestions of the author. This list is not a standard one. Changes have to be done in it depending upon the nature, scope and details of the application to be developed.
Debugging Tools


1. Dmalloc http://dmalloc.com/

The debug memory allocation or Dmalloc library is a freeware debugging tool which has been specially designed as a drop in replacement for the system's malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime. It makes changes during compile time and donot add runtime changes in binary. These facilities include such things as memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics. The library is reasonably portable having been run successfully on at least the following operating systems: AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix, Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware, Windoze, and even Unicos on a Cray T3E. It has full support for programs the debugging of POSIX threads.

The package includes the library, configuration scripts, debug utility application, test program, and documentation.

2. Valgrind http://valgrind.kde.org/

Valgrind is a GPL distributed system for debugging and profiling x86-Linux programs. I can also be helpful for programs for platforms other than x86 since behavior of x86 binary is similar to other binaries. The accompanying tools with Valgrind automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making programs more stable. It supports a through detailed profiling to help speed up the programs.

The Valgrind distribution includes four tools: two memory error detectors, a thread errordetector, and a cache profiler.

3. Electricfence http://rpmfind.net/linux/RPM/conecti...-2cl.i386.html

Electric Fence is a freeware library that can be used for C programming and debugging. It can be linked at compile time and it will warn about possible problems such as freeing memory that doesn't exist, etc. It is basically a memory profiling tool. However currently it is available only on HP-Unix platform (I am not very sure though).

4. GDB http://sources.redhat.com/gdb

This is the Gnome Debugger which comes as a freeware support package with freeware Linux distribution like Red Hat, Slacware, and Debian etc. It has full support of many languages like C, C++, and Perl etc. It helps to debug the binaries of these languages in modes like single step, multiple step or complete run. It also has provisions of setting break points and trace value.

It is helpful for stub testing, functional flow checking and bound checking. Further this is readily available with all flavours of Linux andUnix platforms and is amply supported in user community.

5. Insight http://sources.redhat.com/insight

Insight is a graphical user interface to GDB, the GNU Debugger written in Tcl/Tk by at Red Hat, Inc. and Cygnus Solutions Insight provides all features provided by GDB along with Graphical debugging interface replacing traditional command based interface.

6. Memprof http://www.gnome.org/projects/memprof

MemProf is a free ware memory Profiling and memory leak detection tool which comes as an addendum to common Linux distributions. It can generate a profile how much memory was allocated by each function in the program. It can scan memory and find blocks that have been allocated but are no longer referenced anywhere (dead code).

MemProf works by pre-loading a library to override the C library's memory allocation functions and does not require recompiling the program. One advantage MemProf has over some other similar tools that are available is that it has a nice GUI front-end and is relatively easy to use.


I am Nikhil Bhargava from Delhi, India. I am a Computer Engineer currently working in C-DOT, India for past one year. Comments and Suggestions are always welcome.




10.3  图形化调试工具

尽管你能够在大多数(即使不是所有)Linux调试 任务中使用GDB,但与长时间坐在GDB命令行前面相比,许多人仍是更愿意使用诸如DDD或Eclipse这样的图形化工具。从各方面来看,大多数很是花 哨的图形化调试工具不过是创建在GDB基础上的一个抽象,因此选择哪种图形化工具彻底属于我的爱好。

本节将介绍两个这样的工具,固然还存在其余许多这样的工具(包括GDB的前端GNU insight),它们也被各类开发团队所使用。

 

 

从事Linux应用开发一年多了,感受很不规范很山寨,准备系统地学习一下下linux开发,首先从调试工具的学习开始,如下是从网上看到的一篇linux调试工具介绍,准备好好学习这些工具的使用。


“工欲善其事 必先利其器”如今将一些常见的调试工具进行一下总结.

【1】
名称:MEMWATCH 
功能:
    一、MEMWATCH 支持 ANSI C
    二、它提供结果日志纪录
    三、能检测双重释放(double-free)
    四、错误释放(erroneous free)
    五、没有释放的内存(unfreed memory)、
    六、溢出和下溢等等。
参考文献:
      【1】:
http://blog.csdn.net/lengxingfei/archive/2006/08/09/1040800.aspx
【2】
名称:YAMD
功能:
    一、查找 c 和 c++ 中动态的、与内存分配有关的问题
参考文献:
     【1】
http://www.cs.hmc.edu/~nate/yamd/
     【2】
http://www.ppsql.com/server/p262/J26232224_2.shtml

【3】
名称:electric fence 
功能:
    一、检测内存泄露
    二、检查数据越界
    三、分配受保护的内存
参考文献:
    【1】
http://book.opensourceproject.org.cn/embedded/oreillybuildembed/index.html?page=opensource/belinuxsys-chp-11-sect-4.html
    【2】
http://book.opensourceproject.org.cn/embedded/oreillybuildembed/opensource/belinuxsys-chp-11-sect-4.html
    【3】
http://www.ppsql.com/server/p262/J26232224_3.shtml

【4】
名称:strace
功能:
    一、显示用户空间程序发出的系统调用
    二、显示调用的参数和返回值

【5】
名称:gdb
功能:
    一、启动程序
    二、使程序可以中止在指定文件的指定位置
    三、查看程序变量值
    四、改变程序执行期间的相关变量、路径等


【6】
名称:Oops 
功能: 显示系统错误信息
参考文献:
    【1】
http://www.ibm.com/developerworks/cn/linux/sdk/l-debug/


【7】
名称:mtrace
功能:
    一、检测一些内存分配和泄漏的失败等
参考文献:
    【1】
http://www.vbaccelerator.com/home/VB/Code/Techniques/RunTime_Debug_Tracing/mTrace_bas.asp
    【2】
http://www.yuanma.org/data/2006/0612/article_789.htm
    【3】
http://www.mylinux.com.cn/HTML/1183705958487.html


【8】
名称:binutil
说明:binutil为一个工具集合,包含以下的工具。
     addr2line  把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪一个文件以及行号。
     ar   创建、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了能够恢复原始文件内容。
    as   主要用来编译GNU C编译器gcc输出的汇编文件,产生的目标文件由链接器ld链接。
    c++filt  链接器使用它来过滤 C++ 和 Java 符号,防止重载函数冲突。
    gprof   显示程序调用段的各类数据。
    ld   是链接器,它把一些目标和归档文件结合在一块儿,重定位数据,并连接符号引用。一般,创建一个新编译程序的最后一步就是调用ld。
    nm   列出目标文件中的符号。
    objcopy 把一种目标文件中的内容复制到另外一种类型的目标文件中.
    objdump  显示一个或者更多目标文件的信息。显示一个或者更多目标文件的信息。使用选项来控制其显示的信息。它所显示的信息一般只有编写编译工具的人才感兴趣。
    ranlib  产生归档文件索引,并将其保存到这个归档文件中。在索引中列出了归档文件各成员所定义的可重分配目标文件。
    readelf  显示ebf格式可执行文件的信息。
    size   列出目标文件每一段的大小以及整体的大小。默认状况下,对于每一个目标文件或者一个归档文件中的每一个模块只产生一行输出。
    strings  打印某个文件的可打印字符串,这些字符串最少4个字符长,也可使用选项-n设置字符串的最小长度。默认状况下,它只打印目标文件初始化和可加载段中的可打印字符;对于其它类型的文件   它打印整个文件的可打印字符,这个程序对于了解非文本文件的内容颇有帮助。
    strip   丢弃目标文件中的所有或者特定符号。
    libiberty  包含许多GNU程序都会用到的函数,这些程序有: getopt, obstack, strerror, strtol 和 strtoul.
   libbfd  二进制文件描述库.
   libopcodes  用来处理opcodes的库, 在生成一些应用程序的时候也会用到它, 好比objdump.Opcodes是文本格式可读的处理器操做指令.
功能:程序调试、归档等
参考文献:
       
http://man.chinaunix.net/linux/


【9】
名称: Purify 
功能:内存检查工具
参考文献:
     
http://blog.csdn.net/haoel/archive/2003/12/16/2904.aspx


【10】
名称:pc-lint
功能:C/C++的静态代码检测工具
参考文献:
      【1】
http://dev.yesky.com/134/2593634.shtml


【11】
名称:splint
说明:splint是一个动态检查C语言程序安全弱点和编写错误的程序
功能:
    一、空引用错误
    二、未定义的变量错误
    三、类型错误
    四、内存检查
参考文献:
    【1】
http://www.turbolinux.com.cn/turbo/wiki/doku.php?id=splint&DokuWiki=e3b300af2d101a8bec5a4c805e678823
    【2】
http://www.splint.org/

【12】
名称:boundercheck
功能:检查内存泄露

【13】
名称:valgrind
功能:
    一、检查内存错误
参考文献:
    
http://blog.donews.com/idlecat511/archive/2006/02/21/736877.aspx

 IDA最知名的是反汇编器,它是二进制文件执行静态分析的最佳工具之一。因为现代反静态分析技术的复杂性,人们经常将静态分析与动态分析技术结合起来,以利用两者的优点。理想状况下,全部这些工具集成在一个软件包中。Hex-Rays在推出4.5版的IDA调试器时,作出巩固IDA的做用将其做为一个通用的逆向工程工具这一举动。随着IDA的后续版本,调试功能获得改善。在最新版本中,IDA可以在多个不一样的平台上进行本地和远程调试,并支持多种不一样的处理器。

 

 

 

 

Linux调试工具lsof的深刻分析

 
DDD,全称是Data Display Debugger,对于Linux系统中的编程人员来讲,它就是windows系统下面的visual studio ,功能强大,数Linux世界中少数有图形界面的程序调试工具
 
  • 跨平台Web抓包分析工具 Rythem

    Rythem是什么 Rythem是一个与Fiddler同类的软件,和Fiddler同样具备 代理抓包/替换 功能,与Fiddler最大的不一样是Rythem是跨平台&开源的。 官方详细介绍: http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ 如下为Rythem运行的截图:(MacO...Rythem更多Rythem信息

  • 内存泄漏问题跟踪 YAGAC

    YAGAC 是一个库用来连接到你的C程序,让您能够方便地跟踪应用程序中的内存泄漏问题。根据你的代码部分。它跟踪你的代码只分配内存,不监测第三部分库,你能够有多个垃圾收集。跟踪能够被激活的更新调试标志,而无需从新启动您的应用程序。其目的是为守护程...更多YAGAC信息

    最近更新: YAGAC 0.99-4.0 发布,C 程序内存泄漏检测 发布于 1年前

  • C++ 异常堆栈跟踪器 libcsdbg

    libcsdbg 是一个 C++ 异常堆栈跟踪器。当异常被抛出、捕获和处理时,libcsdbg 提供可工具来建立和处理异常堆栈的跟踪,并经过调用堆栈来传播异常路径。跟踪器提供异常发生的函数以及额外的 addr2line 信息(源码级别) 功能列表: 复杂的异常堆栈跟踪(支持...libcsdbg更多libcsdbg信息

    最近更新: libcsdbg 1.23 发布,C++ 异常堆栈跟踪器 发布于 4天前

  • 程序调试工具 GDB

    GDB(GNU symbolic debugger)简单地说就是一个调试工具。它是一个受通用公共许可证即GPL保护的自由软件。 象全部的调试器同样,GDB可让你调试一个程序,包括让程序在你但愿的地方停下,此时 你能够查看变量,寄存器,内存及堆栈。更进一步你能够修改变量...GDB更多GDB信息

    最近更新: GDB 7.7 发布,程序调试工具 发布于 12天前

  • 可视化调试工具 DDD

    GNU DDD (Data Display Debuger) 是一个图形化的调试工具,经过对调试命令例如 GDB、DBX、WDB、JDB、XDB 等等命令行工具的封装,提供一个很是友好的调试界面。DDD更多DDD信息

  • 程序调试工具 strace

    strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统呼叫及它所接收的系统信息。 strace是一个有用的小工具,它能够经过跟踪系统调用来让你知道一个程序在后台所作的事情。Strace是一个基础的调试工具,在大多数Linux系 统上默认已经...更多strace信息

  • 内存泄露检测工具 Visual Leak Detector

    灵活自由是C/C++语言的一大特点,而这也为C/C++程序员出了一个难题。当程序愈来愈复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最多见的内存问题之一。内存泄漏若是不是很严重,在短期内对程序不会有太大的影响,这也使得内...更多Visual Leak Detector信息

  • 运行时诊断工具 Valgrind

    Valgrind是一个运行时诊断工具,它能够监视 一个指定程序的活动并通知你在你的代码中可能存在的各类各样的内存管理问题。它相似于老式的Electric Fence工具(该工具将标准的内存分配函数替换为本身的函数以提升诊断能力),但被认为更容易使用而且在多个方...Valgrind更多Valgrind信息

    最近更新: Valgrind 3.9.0 发布,运行时诊断工具 发布于 3个月前

  • 图形化的调试工具 KDbg

    KDbg 是一个 gdb 调试工具的图形化界面的工具(点击查看大图)。KDbg更多KDbg信息

    最近更新: KDbg 2.5.4 发布,图形化的调试工具 发布于 3个月前

  • 【共享】程序调试工具 OllyDbg

    OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,很是容易上手,己代替SoftICE成为当今最为流行的调试解密工具了.同时还支持插件扩展功能,是目前最强大的调试工具.OllyDbg更多OllyDbg信息

  • C/C++调试器 LLDB

    LLDB 是下一代高性能的调试器,构建一组可重用的组件,覆盖不少 LLVM 项目的库,例如 Clang 表达式解析器和 LLVM 反汇编器。目前该项目还处于前期开发状态,但已经注意支持在 Mac OS X 上的 C/C++ 和 Objective-C 的开发。...更多LLDB信息

  • 【免费】窗口应用调试工具 Managed Spy

    有很多开发者使用Visual Studio®提供的工具Spy++。使用Spy++,你能够了解一个运行中的应用程序的窗体布局或肯定一个致使bug的特定窗体消息。然而,当你建立一 个基于Microsoft® .NET框架的应用程序,Spy++变得不太管用了,由于由Spy++截取窗体消息和类不...Managed Spy更多Managed Spy信息

  • Linux程序调试工具 XBuildStudio

    您还在使用gdb缓慢地调试UNIX/LINUX的程序吗?XBuildStudio是专为提高UNIX/LINUX的程序的开发而设计的在WINDOWS平台上调试UNIX/LINUX程序的开发工具,操做方式相似VC的环境,有效提高您的工做效率.XBuildStudio更多XBuildStudio信息

  • gdb的终端界面加强版 CGDB

    cgdb,能够当作是gdb的终端界面加强版,相比windows下的visual studio而言,它的功能显得十分轻量级而没有太多繁杂,能在终端里运行。CGDB更多CGDB信息

  • 调试器 EDB (Evan's Debugger)

    EDB (Evan's Debugger) 是一个基于 Qt4 开发的二进制调试工具,主要是为了跟 OllyDbg 工具看齐,经过插件体系可进行功能的扩充,当前只支持 Linux ,未来会发布其余平台的版本。EDB (Evan's Debugger)更多EDB (Evan's Debugger)信息

    最近更新: Evan's Debugger 0.9.20 发布,二进制调试工具 发布于 1个月前

  • 图形化OpenGL调试器 BuGLe

    BuGLe 结合图形化的OpenGL调试与选择的过滤器上的OpenGL命令流。调试器能够查看状态、纹理、framebuffers ,着色器,而过滤器容许日志,错误检查,自由相机控制,视频捕捉等。BuGLe更多BuGLe信息

  • 软件开发辅助软件 uuSpy

    uuSpy工具很相似于Spy++。此外,还能够查看[***]的密码,甚至取得Internet Explorer的HTML。使用uuSpy你能够知道正在运行的窗口程序的结构。或者监视致使程序出错的特定的窗口消息。甚至你能够输出指定窗口的 style/exstyle,或作某些设置。 uuSpy能够对指...uuSpy更多uuSpy信息

  • Linux内核测试工具 CrackerJack

    Crackerjack Project 是由中日韩三方共同参加开发,该项目主要目的是为Linux内核提供自动化的回归测试功能,以帮助提升内核开发质量等,项目包括一个完整的内核自动化测试框架,以实现自动化载入、执行、管理测试用例,还包括定义新的测试程序(用例),集...更多CrackerJack信息

  • 开源PE文件分析工具 pev

    pev是一个小巧的基于命令行的windows可执行文件(PE)分析工具,支持linux、windows和OSX系统。特别的是它使用ANSI标准c编写,所以能够容易的在多个平台上编译。pev免费而且开放源代码。更多pev信息

  • C 语言内存错误检测工具 memwatch

    MEMWATCH 由 Johan Lindh 编写,是一个开放源代码 C 语言内存错误检测工具。只要在代码中添加一个头文件并在 gcc 语句中定义了 MEMWATCH 以后,您就能够跟踪程序中的内存泄漏和错误了。MEMWATCH 支持 ANSI C,它提供结果日志记录,能检测双重释放(double-...更多memwatch信息

  •  

    • 程序跟踪的C库 PinkTrace

      PinkTrace是一款轻量级的C库文件,简化了编写应用程序跟踪程序的困难。它由围绕不一样ptrace()请求的封装、用于解码参数 (strings, socket addresses)的API和一个实验性的用于编码参数掉的API构成。PinkTrace的目标是为跟踪程序提供一个跨平台的库。另外,...更多PinkTrace信息

    • BASH Debugger

      Shell 脚本调试器。 We have debuggers for bash, python, zsh, ksh, GNU make 3.81 and Python. In the patched sources for Make, we provide better error handling and tracing. GNU Emacs support is included for all debuggers....BASH Debugger更多BASH Debugger信息

    • 程序性能跟踪工具 LTTng

      一个高效的Linux 的Tracing Tools。它可以帮助发现并行环境下的性能问题及bug,甚至跨系统tracing也是可能的。更多LTTng信息

    • 程序调试工具 ltrace

      ltrace 是一个调试程序,可在它退出以前执行指定命令来拦截和记录动态库调用和信号接收过程。它还能够拦截并打印系统调用。要跟踪的项目不须要从新编译,能够直接在二进制文件上使用。更多ltrace信息

      最近更新: ltrace 0.7.1 发布,程序调试工具 发布于 1年前

    • Linux 调试器 和 跟踪器 KGTP

      KGTP 是一个 实时 轻量级 Linux 调试器 和 跟踪器 。 使用KGTP 不须要 在Linux内核上打PATCH或者从新编译,只要编译KGTP模块并insmod就能够。 其让Linux内核提供一个远程GDB调试接口,因而在本地或者远程的主机上的GDB能够在不须要中止内核的状况下用GDB t...更多KGTP信息

    • 调试助手库 DAL

      Debug Assistant Library (DAL) 是用于辅助调试的程序库,具备跨平台和统一接口的特色。 主要特性: assistant library for debugging, across platforms with uniform interface supports multi-compiler, support multi-platform Debug Message Asserti...更多DAL信息

      最近更新: DAL 2.0.32 发布,调试助手库 发布于 1年前

    • Ollydbg的TLS回调捕获插件 TLSCatch

      TLSCatch是一款Ollydbg插件,它能够简单拦截当前进程地址空间的新模块加载操做,并从中搜索tlscallback。若是发现回调,则在每 个回调上设置一个一次性断点。在恶意软件分析中能够捕获任何tls callback。将 TLSCatch.dll拷贝到Ollydbg的插件目录就能够工做...更多TLSCatch信息

    • 故障注入的C库 libfiu

      libfiu是一个故障注入的C库。它提供用于标识“故障点”(“核心API”)里面的代码,功能启用/禁用这些点的失败(“控制API”)。核心API内部使用上要执行故障注入代码。控制API用于内部测试代码,以控制注入失败。 libfiu is a C library for fault inject...更多libfiu信息

    • pstack工具 lsstack

      lsstack是一个linux实现的的pstack工具,它本来在solaris系统上。 lsstack是一个命令行工具。 它能对指定的进程快速而高效地打印出其的线程和调用堆栈(call stack)。 以及函数在被ar的时候的符号名称。更多lsstack信息

    • vim-ruby-debugger

      vim-ruby-debugger 这是 vim 上调试 Ruby 程序的插件。更多vim-ruby-debugger信息

    • 在windows下编译和调试远程GDB BVRDE

      BVRDE是一款“Remote Compile IDE”,主要功能为:在windows上提供一套图形化的界面来编译和调试远程的系统,(固然,BVRDE也支持对本地系统的调试)。方便对GDB等调试工具不熟悉或者不喜欢的用户进行程序调试,提升工做效率。 BVRDE安装在Windows系统上,通...BVRDE更多BVRDE信息

    • 反调试demo Pafish

      Pafish是一个模拟了多个反调试(调试器/虚拟机/沙箱)技巧的demo工具。这些反调试技巧常常被恶意软件使用,干扰调试器工做或动态行为分析工做。(文/pulog)Pafish更多Pafish信息

    • skpd

      skpd 是一个用来将进程 dump 到一个可执行的 ELF 文件并执行。更多skpd信息

    • Termdebug

      Termdebug是一组实用程序来记录和回放的输入和输出一个终端程序。它的主要目标是帮助开发和调试终端程序。其余项目如termrec / termplay,nethack-recorder /播放器和脚本/ scriptreplay只记录输出。然而,当调试一个交互式终端程序,输入一般是更重要的输出。...更多Termdebug信息

      最近更新: Termdebug 2.1 发布,输入的记录和回放 发布于 8个月前

    • 内存函数分析工具 LMDBG

      LMDBG (Lightweight modular malloc debugger) 提供一组小工具用来收集和分析 malloc/realloc/memalign/free 函数调用的日志。LMDBG 不提供任何方式用来检测 malloc() 内存分配的超支分界。LMDBG 可检测内存泄漏和重复释放。LMDBG 可生成全堆栈日志。...更多LMDBG信息

      最近更新: LMDBG 1.2.0 发布,内存分配函数分析 发布于 6个月前

    • php 调试工具 ydb

          ydb 是像gdb同样的php调试工具,用扩展实现,能够在运行过程当中查看变量值,也能够进行性能测试,而不用对源代码进行任何更改,就像xdebug和xhprof 中提供的功能,但使用更方便     ydb也能够称为一个在线调试工具,什么叫在线调试?就是在线上生产...更多ydb信息

    • 分布式多线程检查点工具 DMTCP

      高性能计算/分布式计算等大量计算须要程序运行几天、几周甚至几个月,若是期间由于电力或者不可避免的问题致使程序中断会浪费大量的时间和人力,还 有超级计算机在这段时间里运行的电力成本。咱们没有遇到过电力问题,不过咱们最近遇到的场景是实验室须要作...更多DMTCP信息

    • 垃圾收集器 bdwgc

      bdwgc (Boehm-Demers-Weiser conservative garbage collector)是个垃圾收集器,用来替代 C malloc 或者是 C++ new。bdwgc 也能够用其余编程语言实现,可是要用 C 做为中间转换语言。bdwgc 也能够用来检测 C 或者 C++ 程序的漏洞。旧版的垃圾收集器中包括...更多bdwgc信息

    • C/C++ 程序调试工具 libdwarf-dwarfdump

      libdwarf 能够在 ELF 对象文件中读或者写 DWARF 调试信息。dwarfdump 使用 libdwarf 来读对象文件和打印可读样式的 DWARF 内容。libdwarf 听从了 DWARF2 及以上标准,源代码中包括一些树搜索(tsearch)算法(平衡,红黑和二进制)。...

相关文章
相关标签/搜索