Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
compare webbrowser
Freenet DSL
Who's Online
6 user(s) are online (6 user(s) are browsing encyclopedia)

Members: 0
Guests: 6

more...
browser tip
Unix Befehle
manual of unix befehle
recommendation!
Sponsored
partner

Debugger

A debugger is a computer program that is used to debug (and sometimes test or optimize) other programs.

When the program crashes, the debugger shows the position in the original code if it is a source-level debugger or symbolic debugger, commonly seen in integrated development environments. If it is a low-level debugger or a machine-language debugger it shows the line in the disassembly. (A crash happens when the program can t continue because of a programming bug. For example, perhaps the program tried to use an instruction not available on the current version of the Central Processing Unit.)

Typically, debuggers also offer more sophisticated functions such as running a program step by step (single-stepping), stopping (breaking) (pausing the program to examine the current state) at some kind of event by means of breakpoint, and tracking the values of some variables. Some debuggers have the ability to modify the state of the program while it is running, rather than merely to observe it.

The same functionality which makes a debugger useful for eliminating accidental bugs allows it to be used as a software cracking tool to learn how to evade copy prevention and other programmed limitations.

Debuggers make the debugging process much easier and faster, to the point where the availability of a good one for a particular language and platform can sway the decision to use that language rather than another language that is superior in other respects but lacks such tools.

An important difficulty is that software running under a debugger might behave differently than software running normally, because a debugger changes the internal timing of a software program. That makes it often very difficult to track down runtime problems in complex multi-threaded or distributed systems.

Some people find traditional debuggers hard to work with, and use instead a Debugger_front-end.

=Notable debuggers include:=

  • GNU Debugger (GDB)
  • CodeView and the Visual Studio Debugger
  • T-Bug, the integrated debugger in Perl#Perl 5
  • AntiC
  • Broadway
  • DAEDALUS
  • Java Platform Debugger Architecture
  • adb
  • sdb
  • dbx debugger
  • Dynamic debugging technique (DDT), and its octal counterpart ODT
  • Purify
  • ladebug
  • SoftICE
  • Turbo Debugger
  • TMON
  • MacsBug
  • NoIce- an embedded systems debugger
  • Etnus TotalView
  • Allinea Distributed Debugging Tool (DDT) (DDT)
  • Prism Parallel Debugger
  • dbg PHP Debugger and Profiler [http://dd.cron.ru/dbg/ client e server]
  • dbg Library [http://dbg.sourceforge.net/ main]
  • [http://doctorj.sourceforge.net/index.html doctorJ] debugging the JavaDoc doccumentation with the code
  • [http://www-124.ibm.com/linux/projects/dprobes/ dprobes]
  • OllyDbg
  • WinICE AKA SoftICE
  • Windbg
  • =See also=

  • Debugger front-end
  • Profiler (computer science)
  • Computer programming
  • Software testing
  • Memory debugger
  • Flaw detection
  • Core dump
  • =References=

  • Jonathan B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons, ISBN 0-471-14966-7