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)算法(平衡,紅黑和二進制)。...

相關文章
相關標籤/搜索