This is a curated list of debugging tools for Linux kernel, sorted largely from more dynamic ones to the more static ones.
Note that the preferred debugging method may depend on the development strategy. Sometimes the most traight-forward way may be checking out various version of kernels. For example, you may want to check if certain issue has been fixed in the linux-next
tree (or other developers tree). However if may not work if the kernel contains too many out-of-tree modifications.