<commit_before>[TOC]

# Overview

Debugging is the process of finding and resolving of defects that
prevent correct operation of computer software or a system.
- Debugging tactics can involve interactive debugging, control flow
  analysis, unit testing, integration testing, log file analysis,
  monitoring at the application or system level, memory dumps, and
  profiling.

## History

The terms "bug" and "debugging" are popularly attributed to Admiral
Grace Hopper in the 1940s. While she was working on a Mark II computer
at Harvard University, her associated discovered a moth stuck in a relay
and thereby impeding operation, whereupon she remarked that they were
"debugging" the system.

However, the term "bug" in the meaning of technical error dates back at
least to 1878 and Thomas Edison. Similarly, the term "debugging" seems
to have been used as a term in aeronautics before entering the world of
computers.

# Tools

## Debugger


# Debugging Process

## Bug report

>A good bug report is one that describes the problem well enough that
>someone familiar with the project can understand and act on that bug
>report without talking to the person who wrote it.

A good bug report has all of the following:

1. **a descriptive title**, one that contains specific key words and
   terms to enable categorization.

not good: “An application named Finder should not lose my files” good:
“Icons can be placed offscreen, and lost”<commit_msg>Add tools<commit_after>[TOC]

# Overview

Debugging is the process of finding and resolving of defects that
prevent correct operation of computer software or a system.
- Debugging tactics can involve interactive debugging, control flow
  analysis, unit testing, integration testing, log file analysis,
  monitoring at the application or system level, memory dumps, and
  profiling.

## History

The terms "bug" and "debugging" are popularly attributed to Admiral
Grace Hopper in the 1940s. While she was working on a Mark II computer
at Harvard University, her associated discovered a moth stuck in a relay
and thereby impeding operation, whereupon she remarked that they were
"debugging" the system.

However, the term "bug" in the meaning of technical error dates back at
least to 1878 and Thomas Edison. Similarly, the term "debugging" seems
to have been used as a term in aeronautics before entering the world of
computers.

# Tools

Generally, high-level programming languages, such as Java make debugging
easier, because they have features such as exception handling that make
real sources of erratic behavior easier to spot.
- In programming languages such as C or assembly, bugs may cause silent
  problems such as memory corruption, and it is often difficult to see
  where the initial problem happened.
- In those cases, memory debugger tools may be needed.

Static code analysis tools
- These tools look for a very specific set of known problems, some
  common and some rare, within the source code.
- All such issues detected by these tools would rarely be picked up by a
  compiler or interpreter, thus they are not syntax checkers, but more
  semantic checkers.

## Debugger

Debuggers are software tools which enable the programmer to monitor the
execution of a program, stop it, restart it, set breakpoints, and change
values in memory.
- The term "debugger" can also refer to the person who is doing the
  debugging.


# Debugging Process

## Bug report

>A good bug report is one that describes the problem well enough that
>someone familiar with the project can understand and act on that bug
>report without talking to the person who wrote it.

A good bug report has all of the following:

1. **a descriptive title**, one that contains specific key words and
   terms to enable categorization.

not good: “An application named Finder should not lose my files” good:
“Icons can be placed offscreen, and lost”
{'fraction_non_alphanumeric': 0.038977800722767166, 'fraction_numerical': 0.004646360351058337, 'mean_word_length': 4.442415730337078, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1802283', 'n_tokens_mistral': 976, 'n_tokens_neox': 928, 'n_words': 599}