
Linux Kernel Debugging
By :

As you will know, defects (bugs) can be quite readily classified into different types. Here, I attempt to do so (it's nothing new, really), with an added twist: we shall look at common bug classes through different lenses or viewpoints – first, in the classic (typical, academic) manner, then focused on memory-type bugs, and then the security-related view of bugs. Having seen this, we'll further refine this classification to what you'll typically see when working with the Linux kernel. Do note that there can be, and often are, overlaps within these classifications. Let's begin with the first one – classifying defects/bugs in a classic manner.
The classic way of viewing the types of defects or bugs that can occur in a software program is as follows: