# Introduction to Debugger - Using GDB - Debugging Commands

  

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1667400971579/55XEuXHb-.png)](https://1.bp.blogspot.com/-1TDU27t0q_4/Uk5N-gt7JUI/AAAAAAAAA5o/qbcQkzDMhK8/s1600/debugger.png)

  

  

<iframe height="512" src="https://www.slideshare.net/slideshow/embed_code/7899250?rel=0" style="border-width:1px 1px 0;border:1px solid #CCC;margin-bottom:5px" width="100%"></iframe>  
  
Click on "**Prev**" or "**Next**" Button to Read  

  
A **debugger** or **debugging tool** is a [computer program](https://en.wikipedia.org/wiki/Computer_program) that is used to [test](https://en.wikipedia.org/wiki/Software_testing) and [debug](https://en.wikipedia.org/wiki/Debugging) other programs (the "target" program). The code to be examined might alternatively be running on an [_instruction set simulator_ (ISS)](https://en.wikipedia.org/wiki/Instruction_Set_Simulator), a technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor. Some debuggers offer two modes of operation—full or partial simulation—to limit this impact.

A "[crash](https://en.wikipedia.org/wiki/Crash_(computing))" happens when the program cannot normally continue because of a [programming bug](https://en.wikipedia.org/wiki/Software_bug). For example, the program might have tried to use an instruction not available on the current version of the [CPU](https://en.wikipedia.org/wiki/Central_Processing_Unit) or attempted to access unavailable or [protected](https://en.wikipedia.org/wiki/Memory_protection) [memory](https://en.wikipedia.org/wiki/Memory_(computers)). When the program "crashes" or reaches a preset condition, the debugger typically shows the location in the original code if it is a **source-level debugger** or**symbolic debugger**, commonly now seen in [integrated development environments](https://en.wikipedia.org/wiki/Integrated_development_environment). If it is a **low-level debugger** or a **machine-language debugger** it shows the line in the [disassembly](https://en.wikipedia.org/wiki/Disassembly) (unless it also has online access to the original source code and can display the appropriate section of code from the assembly or compilation).

Source :- [Wikipedia](https://en.wikipedia.org/wiki/Debugger)
