메뉴 건너뛰기


디버깅 도구


이 페이지는 소프트웨어 공학을 지원하는 도구 중 구현 및 디버깅 도구에 대한 소개 및 정보를 공유하기 위해 작성되었다.


Allinea DDT
  • 개발사: Allinea Software
  • 설명: Allinea DDT, is a commercial debugger produced by Allinea Software of Warwick, United Kingdom, primarily for debugging parallel MPI or OpenMP programs, including those running on clusters of Linux machines, but also used by many for scalar code in C, C++ and Fortran 90. As of June 2011 it is used on 36 of the top 100 supercomputers on the TOP500 list. It is used to find bugs on both small and large clusters, from 1 to 1,000s of processors. It is the first debugger to be able to debug a Petascale system - having debugged 220,000 processes, over 2 Petaflops, on a Cray XT5 at Oak Ridge National Laboratories. The debugger has logarithmic performance for most collective debugging operations, due to using a tree architecture across the machine network to control the many single-process debuggers. This architecture enables operations to be measured in milliseconds at full scale. It features a complete memory debugging tool which can be used to detect memory leaks, or reading and writing beyond the bounds of arrays. Allinea DDT includes support for Intel Xeon Phi coprocessors and IBM Blue Gene. The debugger is also able to debug GPU software written for CUDA applications.Allinea Software's products are used globally by a wide range of companies and institutions to solve real world grand challenges.
  • 라이센스: 유료 (Commercial)
  • 운영체제 지원: Linux, AIX, Blue Gene
  • 플랫폼 지원: Intel x86 - 32-bit, x64, ARM, PowerPC, Intel Xeon Phi and CUDA
  • 지원 언어: parallel MPI, OpenMP, C, C++, Fortran 90
  • 링크: http://www.allinea.com

RIA (Rich Internet Application) AppPuncher
  • 개발사: 
  • 설명: RIA AppPuncher™ is a software testing and debugging product. AppPuncher was designed from the ground up to facilitate testing of the Rich Internet Applications. The product provides the following functionality:
     - Client/server communication debugging
     - Functional testing
     - Regression testing
     - Load testing
    AppPuncher supports Flash, Flex, Silverlight, AJAX clients as well as traditional browser-based applications. From the client/server protocol perspective, the product enables testing of the client/server applications using any of the following protocols: HTTP, SOAP, REST/XML, AMF and RTMP. AppPuncher runs on Windows, MAC OS X and *nix platforms.
  • 라이센스: 오픈소스 (open source)
  • 플랫폼 지원: 
  • 지원 언어: 
  • 링크: http://www.themidnightcoders.com/products/ria-apppuncher/overview.html

AQtime
  • 개발사: SmartBear Software
  • 설명: AQtime is a performance profiler and memory/resource debugging toolset developed by SmartBear Software.[1] It is integrated into Microsoft Visual Studio,[2][3] Visual Studio Test Projects and Embarcadero RAD Studio[4] that allows analyzing the application without leaving the development environment. AQtime is used for multiple optimization tasks to improve application performance and memory usage. It includes a set of profilers for analysis of different application aspects. It does sophisticated application performance analysis of function execution time down to the individual source code lines. It tracks performance issues and memory leaks. It analyzes resource usage and function call order. It monitors code coverage, Windows API compliance and includes other profilers for analyzing more application properties.
    Features:
     - 
    Support for Windows and .NET compilers.
     - Support for profiling 32- and 64-bit applications.
     - Profiling Java and Silverlight Applications.
     - Profiling scripts.
     - Integration into Microsoft Visual Studio and Embarcadero RAD Studio IDEs.
  • 라이센스: 유료 (Commercial)
  • 운영체제 지원: Windows
  • 플랫폼 지원: 
  • 지원 언어: .NET compiler
  • 링크: http://smartbear.com/products/development-tools/performance-profiling

ARM DS Debugger
  • 개발사: ARM
  • 설명: 
  • CA-EZTEST was a CICS interactive test/debug software package distributed by Computer Associates and originally called EZTEST/CICS, produced by Capex Corporation of Phoenix, Arizona with assistance from Ken Dakin from England.The product provided source level test and debugging features for computer programs written in COBOL, PL/I and Assembler (BAL) languages to complement their own existing COBOL optimizer product.
  • Features:
     - 
  • 라이센스: 유료 (Commercial)
  • 운영체제 지원: 
  • 플랫폼 지원: ARM
  • 지원 언어: 
  • 링크: http://ds.arm.com/ds-5-debugger

DBG
  • 개발사: Dmitri Dmitrienko
  • 설명: DBG is a a full-featured php debugger, an interactive tool that helps you debugging php scripts. It works on a production and/or development WEB server and allows you debug your scripts locally or remotely, from an IDE or console.
    Features: 
Remote and local debugging
Explicit and implicit activation
Call stack, including function calls, dynamic and static method calls, with their parameters
Navigation through the call stack with ability to evaluate variables in corresponding (nested) places
Step in/Step out/Step over/Run to cursor functionality
Conditional breakpoints
Global breakpoints
Logging for errors and warnings
Multiple simultaneous sessions for parallel debugging
Support for GUI and CLI front-ends
IPv6 and IPv4 networks supported
All data transferred by debugger can be optionally protected with SSL
  • 라이센스: PHP License
  • 운영체제 지원: Linux, Windows, FreeBSD, Solaris, OSX
  • 플랫폼 지원: x86, x64, ARM
  • 지원 언어: PHP
  • 링크: http://www.php-debugger.com/dbg

Eclipse (JPDA integration)
  • 개발사: Eclipse
  • 설명: Java Platform Debugger Architecture를 이용해 Java 응용프로그램 디버깅을 지원합니다.
    Features:
     - Java Debugger Interface (JDI) 지원
     - Java Virtual Machine Tools Interface (JVMTI) 지원
     - Java Debg Wire Protocol (JDWP) 지원
  • 라이센스: 오픈소스 (open source)
  • 플랫폼 지원: 크로스 플랫폼
  • 지원 언어: Java
  • 링크: http://eclipse.org

Opera Dragonfly
  • 개발사: Opera Software
  • 설명: 
    Features:
     - 
  • 라이센스: Apache License 2.0
  • 플랫폼 지원: 크로스 플랫폼 (Opera browser 필요)
  • 지원 언어: JavaScript
  • 링크: http://www.opera.com/dragonfly

FusionDebug
  • 개발사: Integral GmbH
  • 설명: FusionDebug an interactive step debugger for CFML, compatible with Adobe ColdFusion and Railo. It enables developers to step through code line-by-line, step into, over or out of code to better understand how code is running.
    Features:
     - Watch variables
     - 코드 변경 없이 디버깅 가능
     - stack trace
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: -
  • 지원 언어: Flex, Ajax, Web Service, Falsh Remoting request
  • 링크: http://www.fusion-debug.com

Insure++
  • 개발사: Parasoft
  • 설명: Parasoft® Insure++® identifies difficult-to-track programming and memory-access errors, such as memory corruption, memory leaks, access outside of array bounds, invalid pointers, and more to ensure the integrity of your applications' memory usage.
    Features:
     - Memory error detection
     - Runtime error detection
     - Unparlled depth and precision
     - Compile-time error detection
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Windows (32, 64-bit, Linux (32, 64-bit), Solaris (UltraSparc), IBM (AIX, PowerPC 32, 64-bit)
  • 지원 언어: C, C++
  • 링크: http://www.parasoft.com/insure

IDA (Interactive Disassembler)
  • 개발사: Hex-Rays
  • 설명: 실행파일을 분석하여 어셈블리 소스코드를 생성하는 기능을 제공합니다. 그리고 IDC script를 이용해 분석된 정보를 활용할 수 있습니다.
    Features:
     - 지원하는 실행파일 형식: COFF, ELF, Mach-O, NLM, MZ, OMF, AIM, ROM image, COM
     - Instruction sets: Intel 80x86, ARM, Motorola 68k/H8, ...
     - Compiler 지원: Borland, GNU C++, Micrsoft C/C++, Watcom C++, ARM
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Windows, Mac OS X, Linux
  • 지원 언어: C, C++
  • 링크: http://www.hex-rays.com/products/ida/index.shtml

IntelliJ IDEA
  • 개발사: Eclipse
  • 설명: Java Platform Debugger Architecture를 이용해 Java 응용프로그램 디버깅을 지원합니다.
    Features:
     - Java Debugger Interface (JDI) 지원
     - Java Virtual Machine Tools Interface (JVMTI) 지원
     - Java Debg Wire Protocol (JDWP) 지원
  • 라이센스: Apache 2.0 (커뮤니티 버전), Ultimate Edition (유료)
  • 플랫폼 지원: 크로스 플랫폼
  • 지원 언어: Java
  • 링크: http://www.jetbrains.com/idea

NetBeans
  • 개발사: Oracle Corporation
  • 설명: Java Platform Debugger Architecture를 이용해 Java 응용프로그램 디버깅을 지원합니다.
    Features:
     - Java Debugger Interface (JDI) 지원
     - Java Virtual Machine Tools Interface (JVMTI) 지원
     - Java Debg Wire Protocol (JDWP) 지원
  • 라이센스: Apache 2.0 (커뮤니티 버전), Ultimate Edition (유료)
  • 플랫폼 지원: 크로스 플랫폼
  • 지원 언어: Java
  • 링크: http://netbeans.org

JSwat
  • 개발사: Nathan Fiedler
  • 설명: Java Platform Debugger Architecture를 이용해 Java 응용프로그램 디버깅을 지원합니다.
    Features:
     - Java Debugger Interface (JDI) 지원
     - Java Virtual Machine Tools Interface (JVMTI) 지원
     - Java Debg Wire Protocol (JDWP) 지원
  • 라이센스: 무료, CDDL
  • 플랫폼 지원: 크로스 플랫폼
  • 지원 언어: Java
  • 링크: https://github.com/nlfiedler/jswat

OllyDbg
  • 개발사: Oleh Yuschuk
  • 설명: 
    OllyDbg is an x86 debugger that emphasizes binary code analysis, which is useful when source code is not available. It traces registers, recognizes proceduresAPI calls, switchestablesconstants and strings, as well as locates routines from object files and libraries. It has a friendly interface, and its functionality can be extended by third party plugins. Version 1.10 is the final 1.x release. Version 2.0 has recently been released, and OllyDbg has been rewritten from the ground up in this release. The software is free of cost, but the shareware license requires users to register with the author.[1] Also the current version of OllyDbg cannot disassemble binaries compiled for 64-bit processors, though a 64-bit version of the debugger has been promised.
    Features:
     - GUI support
     - 코드 분석: CPU registers trace, recognize procedure, loop, API call, switches, tables
     - DLL을 직접 load하여 debugging 가능
  • 라이센스: Shareware/Freeware
  • 플랫폼 지원: Windows (x86)
  • 지원 언어: 
  • 링크: http://www.ollydbg.de

OPenPAT
  • 개발사: OpenPAT
  • 설명: 

    OpenPAT (the Open Performance Analysis Toolkit) is a dynamic trace analysis system that can be used to identify performance bottlenecks,[1] monitor memory usage,[2] for Search-Based Software Engineering[3] and to visualize and model the performance of new High-Performance Computing architectures[4][5][6] and distributed communication methods.[7]

    OpenPAT integrates with platform specific compiler chain tools which allows it to remain simple with a core toolkit code base of less than 1000 lines and also to provide cross platform analysis for programs written in any compilable language including native languages like C, C++ and Fortran and languages that compile to bytecodes like Java and C#

    Features:
     - Block trace
     - CPU time stamp timing
     - Static memory instrumentation
     - Range instrumentation
     - Threading 지원
  • 라이센스: Freeware
  • 플랫폼 지원: 크로스 플랫폼
  • 지원 언어: C, C++, Fortran, Java, C#
  • 링크: http://www.openpat.org

PGI
  • 개발사: Portland Group Inc.
  • 설명: 
    PGI optimizing multi-core x64 compilers for Linux, MacOS & Windows with support for debugging and profiling of local MPI processes. A complete OpenMP/MPI SDK for high performance computing on the latest Intel and AMD CPUs, linux cluster.
    Features:
     - 
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: x86, x64
  • 지원 언어: C, C++, Fortran
  • 링크: http://www.pgroup.com

PGI
  • 개발사: Portland Group Inc.
  • 설명: 
    PGI optimizing multi-core x64 compilers for Linux, MacOS & Windows with support for debugging and profiling of local MPI processes. A complete OpenMP/MPI SDK for high performance computing on the latest Intel and AMD CPUs, linux cluster.
    Features:
     - 
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: x86, x64
  • 지원 언어: C, C++, Fortran
  • 링크: http://www.pgroup.com

Rational Purify family
  • 개발사: IBM
  • 설명: IBM® Rational® Purify® is a dynamic software analysis toolset that provides memory debugging and that detects memory leaks. Rational Purify improves the reliability of software applications by identifying difficult to find memory errors, such as uninitialized memory access, buffer overflow, and improper freeing of memory. Because Rational Purify does not require access to source code, it can be used with third-party libraries.
    Features:
     - 
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Linux and Unix, Solaris
  • 지원 언어: C, C++, .NET
  • 링크: http://www-03.ibm.com/software/products/en/rational-purify-family

TimeMachine
  • 개발사: GreenHills
  • 설명: TimeMachine is a set of tools for optimizing and debugging C and C++ software.[8][9] TimeMachine (introduced 2003) supports reverse debugging[10] like that in the open-source GDB 7.0 debugger
    Features: 
Viewing register and memory values at any point in the trace data
Finding specific trace data points using complex execution and data breakpoints
Examining RTOS data structures to quickly debug task interaction bugs
Debugging virtual memory applications, such as those in applications running under the INTEGRITY® RTOS
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Linux and Unix
  • 지원 언어: C, C++, Fortran, Ada (x86, x64, ARC, ARM, Blackfin, ColdFire, MIPS, PowerPC, ...)
  • 링크: http://www.ghs.com/products/timemachine.html

TotalView
  • 개발사: RogueWave
  • 설명: TotalView is a GUI-based source code defect analysis tool that gives you unprecedented control over processes and thread execution and visibility into program state and variables.

    It allows you to debug one or many processes and/or threads in a single window with complete control over program execution. This allows you to set breakpoints, stepping line by line through the code on a single thread, or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads. You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take advantage of threads, OpenMP, MPI, GPUs or coprocessors.

    TotalView provides analytical displays of the state of your running program for efficient debugging of memory errors and leaks and diagnosis of subtle problems like deadlocks and race conditions. Whether you are a scientific and technical computing veteran, or a software professional new to the development challenges of multi-core or parallel applications, TotalView gives you the insight needed to find and correct errors quickly, validate prototypes, verify calculations and certify code. TotalView works with C, C++ and Fortran applications written for Linux (including the Blue Gene platforms), UNIX and Mac OS X platforms.  It includes sophisticated memory debugging and analysis, reverse debugging, Xeon Phi coprocessor and OpenACC / CUDA debugging capabilities.

    Features:
     - 
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Linux and Unix, Mac OS X
  • 지원 언어: C, C++, Fortran
  • 링크: http://www.roguewave.com/products/totalview.aspx

Trace32
  • 개발사: Lauterbach
  • 설명: Our product line TRACE32® supports technologies like JTAG, BDM, NEXUS or ETM with embedded debuggers, software and hardware trace and logic analyzer systems for over 3500 cores and CPUs within 250 families like ARM9, ARM11, CORTEX, PowerPC, MIPS, TriCore, etc
    Features: 
Multicore Debugging
Peripheral Browser
NOR FLASH Programming
NAND FLASH Programming
HLL Debugger
Sample-based Profiling
MMU Support
UEFI Bootloader
OS-aware Debugging
VM-aware Debugging
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Windows, QNX, uClinux, ...
  • 지원 언어: -
  • 링크: http://www.lauterbach.com/frames.html?home.html

Valgrind
  • 개발사: Valgrind
  • 설명: Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools.

    The Valgrind distribution currently includes six production-quality tools: a memory error detector, two thread error detectors, a cache and branch-prediction profiler, a call-graph generating cache and branch-prediction profiler, and a heap profiler. It also includes three experimental tools: a stack/global array overrun detector, a second heap profiler that examines how heap blocks are used, and a SimPoint basic block vector generator. It runs on the following platforms: X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux, PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android (2.3.x and later), X86/Android (4.0 and later), X86/Darwin and AMD64/Darwin (Mac OS X 10.7, with limited support for 10.8).

    Features:
     - 
  • 라이센스: 무료 (open source), GNU General Public License v2
  • 플랫폼 지원: Linux (x86, ARM, PPC32/64, MIPS32/64), Android (ARM, x86)
  • 지원 언어:-
  • 링크: http://www.valgrind.org

VB Watch
  • 개발사: Aivosto
  • 설명: VB Watch는 비주얼 베이직 프로그래밍 유틸리티이다. VB Watch는 비주얼 베이직 6.0을 위한 프로파일러(Profiler), 프로텍터(Protector), 디버거(Debugger)의 3개 툴로 구성된다.
    VB Watch Profiler는 비주얼 베이직 프로그램의 속도를 측정한다.

    It displays the time spent in each procedure and/or a line of code. This information can be used in code optimization to detect bottleneck procedures and lines. The Profiler can also be used to measure code coverage during software testing.VB Watch Debugger monitors what happens inside a running Visual Basic program or library. It displays the call stack, execution trace, global variables and the number of live objects. The Debugger also allows one to add breakpoints in executable files. Protector: VB Watch adds advanced error handlers to your code with a few clicks, keeping your existing handlers fully enabled.
    Features:
     - 
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Windows
  • 지원 언어: VB
  • 링크: http://www.aivosto.com/vbwatch.html

WinDbg
  • 개발사: Microsoft
  • 설명:
    Windows Driver Kit(WDK)는 Microsoft Visual Studio와 Debugging Tools을 통합하였다. 이 통합된 환경은 당신에게 필요한 개발, 빌드, 패키지, 배포, 테스트 그리고 디버그 드라이버를 준다. WDK는 Windows Driver Frameworks, USB, 프린트, 네트워킹, 파일시스템을 포함한 몇몇 기술을 위한 템플릿을 포함한다. 
    - WDK debugging 지원
  • 라이센스: 유료 (Commercial)
  • 플랫폼 지원: Windows
  • 지원 언어: C, C++
  • 링크: http://msdn.microsoft.com/en-us/windows/hardware/hh852365

Xdebug
  • 개발사: Derick Rethans
  • 설명: Xdebug는 디버깅과 프로파일링 능력을 제공하는 PHP 확장이다. DBGp 디버깅 프로토콜을 사용한다.
     - Stack trace
     - Function trace
     - Memory allocation
     - 무한 재귀호출 방지
     - PHP profiling
     - Code Coverage 분석
  • 라이센스: Xdebug license
  • 플랫폼 지원: Linux and Unix, Solaris
  • 지원 언어: PHP based on PHP license
  • 링크: http://www.xdebug.org