2015-12-01 22:57:36

by Jeffrey Merkey

[permalink] [raw]
Subject: [ANNOUNCE] MDB Linux Kernel debugger kernels 2.6.19 through 4.3.0

I am in process of completing testing all the branches. If you find a
bug or have a problem with a build, then feel free to push a change to
the git repo on github.com at https://github.com/jeffmerkey/linux.
See the logs in the git repo for info on changes.

Patches are available from github. To download patches and diffs, go to:

http://jeffmerkey.github.io

MDB (The Minimal Kernel Debugger) was written in 1998 and was one of
the earliest debuggers on Linux. It was originally developed for Linux
kernel file system development on the 2.2 series Linux kernels. MDB is
a tool I wrote for my own use and development since at the time, Linux
had no kernel debugger. MDB was open sourced in 2000. Over the years,
I shared this tool with friends and co-workers, and continued to
enhance it. Linux has since grown up and has several debugging tools
available including KGDB and KDB.

MDB supports a lot of features and capabilities and enhances the range
of tools for debugging kernel applications on Linux. If MDB is useful
to you, please feel free to contribute any changes or enhancements
back. Currently MDB supports x86 and x86_64, but can be easily ported
to other architectures.

MDB is fast, loads as a module, and supports complex conditional
breakpoints and disassembly on the fly, and is extremely useful for
debugging in the field. It's also a great example of how to write a
self-contained modular debugger that can load as a kernel module on
Linux. MDB has an open plug and play architecture and you can add
custom commands easily to the code, or support for other
architectures.

MDB uses the Native Linux Breakpoint API, which is platform
independent. The current architecture support module in the debugger
has all the code stubs for disassembly across all gcc compiler
supported platforms, and simply require the specific gdb disassembly
code sections for each architecture added to support that particular
processor. Anyone interested in doing so feel free to fork this repo
and have fun!
Download

Linux 4.X Diffs and Patches

Linux v4.3 : mdb-v4.3-x86_64.diff : mdb-v4.3-x86_64.patch
Linux v4.2 : mdb-v4.2-x86_64.diff : mdb-v4.2-x86_64.patch
Linux v4.1 : mdb-v4.1-x86_64.diff : mdb-v4.1-x86_64.patch
Linux v4.0 : mdb-v4.0-x86_64.diff : mdb-v4.0-x86_64.patch

Linux 3.X Diffs and Patches

Linux v3.19 : mdb-v3.19-x86_64.diff : mdb-v3.19-x86_64.patch
Linux v3.18 : mdb-v3.18-x86_64.diff : mdb-v3.18-x86_64.patch
Linux v3.17 : mdb-v3.17-x86_64.diff : mdb-v3.17-x86_64.patch
Linux v3.16 : mdb-v3.16-x86_64.diff : mdb-v3.16-x86_64.patch
Linux v3.15 : mdb-v3.15-x86_64.diff : mdb-v3.15-x86_64.patch
Linux v3.14 : mdb-v3.14-x86_64.diff : mdb-v3.14-x86_64.patch
Linux v3.13 : mdb-v3.13-x86_64.diff : mdb-v3.13-x86_64.patch
Linux v3.12 : mdb-v3.12-x86_64.diff : mdb-v3.12-x86_64.patch
Linux v3.11 : mdb-v3.11-x86_64.diff : mdb-v3.11-x86_64.patch
Linux v3.10 : mdb-v3.10-x86_64.diff : mdb-v3.10-x86_64.patch
Linux v3.9 : mdb-v3.9-x86_64.diff : mdb-v3.9-x86_64.patch
Linux v3.8 : mdb-v3.8-x86_64.diff : mdb-v3.8-x86_64.patch
Linux v3.7 : mdb-v3.7-x86_64.diff : mdb-v3.7-x86_64.patch
Linux v3.6 : mdb-v3.6-x86_64.diff : mdb-v3.6-x86_64.patch
Linux v3.5 : mdb-v3.5-x86_64.diff : mdb-v3.5-x86_64.patch
Linux v3.4 : mdb-v3.4-x86_64.diff : mdb-v3.4-x86_64.patch
Linux v3.3 : mdb-v3.3-x86_64.diff : mdb-v3.3-x86_64.patch
Linux v3.2 : mdb-v3.2-x86_64.diff : mdb-v3.2-x86_64.patch
Linux v3.1 : mdb-v3.1-x86_64.diff : mdb-v3.1-x86_64.patch
Linux v3.0 : mdb-v3.0-x86_64.diff : mdb-v3.0-x86_64.patch

MDB Linux Kernel Debugger Branches

Linux 4.X Branches

Linux kernel v4.3 (https://github.com/jeffmerkey/linux/tree/mdb-v4.3)
Linux kernel v4.2 (https://github.com/jeffmerkey/linux/tree/mdb-v4.2)
Linux kernel v4.1 (https://github.com/jeffmerkey/linux/tree/mdb-v4.1)
Linux kernel v4.0 (https://github.com/jeffmerkey/linux/tree/mdb-v4.0)

Linux 3.X Branches

Linux kernel v3.19 (https://github.com/jeffmerkey/linux/tree/mdb-v3.19)
Linux kernel v3.18 (https://github.com/jeffmerkey/linux/tree/mdb-v3.18)
Linux kernel v3.17 (https://github.com/jeffmerkey/linux/tree/mdb-v3.17)
Linux kernel v3.16 (https://github.com/jeffmerkey/linux/tree/mdb-v3.16)
Linux kernel v3.15 (https://github.com/jeffmerkey/linux/tree/mdb-v3.15)
Linux kernel v3.14 (https://github.com/jeffmerkey/linux/tree/mdb-v3.14)
Linux kernel v3.13 (https://github.com/jeffmerkey/linux/tree/mdb-v3.13)
Linux kernel v3.12 (https://github.com/jeffmerkey/linux/tree/mdb-v3.12)
Linux kernel v3.11 (https://github.com/jeffmerkey/linux/tree/mdb-v3.11)
Linux kernel v3.10 (https://github.com/jeffmerkey/linux/tree/mdb-v3.10)
Linux kernel v3.9 (https://github.com/jeffmerkey/linux/tree/mdb-v3.9)
Linux kernel v3.8 (https://github.com/jeffmerkey/linux/tree/mdb-v3.8)
Linux kernel v3.7 (https://github.com/jeffmerkey/linux/tree/mdb-v3.7)
Linux kernel v3.6 (https://github.com/jeffmerkey/linux/tree/mdb-v3.6)
Linux kernel v3.5 (https://github.com/jeffmerkey/linux/tree/mdb-v3.5)
Linux kernel v3.4 (https://github.com/jeffmerkey/linux/tree/mdb-v3.4)
Linux kernel v3.3 (https://github.com/jeffmerkey/linux/tree/mdb-v3.3)
Linux kernel v3.2 (https://github.com/jeffmerkey/linux/tree/mdb-v3.2)
Linux kernel v3.1 (https://github.com/jeffmerkey/linux/tree/mdb-v3.1)
Linux kernel v3.0 (https://github.com/jeffmerkey/linux/tree/mdb-v3.0)

Installation

Download the diff which matches your particular linux version, then
apply the patch from your linux build directory. To download the diff
and convert it into a patch file, click on the link for your kernel
version for your system, then the patch text will display in your
browser window, use your mouse to right click, then save as and save
the patch into any filename you wish. It does not matter what filename
you save the file under, you can choose any filename you wish, so long
as it matches the filename you specify when you run the patch utility.
To patch the kernel, from the linux build directory, type:

(linux build directory) patch -p1 < filename.diff

then type

make oldconfig

make bzImage modules modules_install install

You can also type "make menuconfig" to manually adjust kernel settings
for your debugger under the section "Kernel Hacking". After the kernel
rebuilds, reboot your system to the new kernel and you can load MDB as
a module.
Loading MDB

To load MDB as a module, type:

modprobe mdb

To enter the debugger type:

echo a > /proc/sysrq-trigger

The debugger has excellent online help, just type 'h' or 'help' from
the debugger console for a list of commands. For help with a specific
command, just type 'help (command)' where (command) is the command you
need help with.
Disabling KDB/KGDB

You need to check whether or not another kernel debugger is active on
the system, and if so, disable it. Both the KGDB and KDB debuggers are
available as default build options on Linux. Only one debugger can be
running at a time on the system to function properly. Don't try to run
MDB if KDB or KGDB are active, disable them first. If MDB is compiled
as a module, during module loading MDB will attempt to disable
KGDB/KDB if it detects either is active. You may see something like
this in your /var/log/messages file after the module loads which
indicates it detected and disabled KGDB or KDB:

Nov 30 10:28:49 localhost kernel: KGDB: Registered I/O driver kgdboc
Nov 30 10:28:52 localhost kernel: MDB: kgdb currently set to
[kdb], attempting to disable.
Nov 30 10:28:52 localhost kernel: KGDB: Unregistered I/O driver
kgdboc, debugger disabled
Nov 30 10:28:52 localhost kernel: MDB: kgdb/kdb set to disabled.
MDB is enabled.

By default, MDB will always compile as a module unless you select it
to compile directly into the kernel. If MDB is compiled in the kernel
directly, you may need to check whether KGDB/KDB have been enabled
before activating the MDB debugger.

To check whether kdb or kgdb are running on your system, type:

cat /sys/module/kgdboc/parameters/kgdboc

if the text string "kdb", "kbd", or "tty"(some numbers) show up
disable this interface by typing:

echo "" > /sys/module/kgdboc/parameters/kgdboc

which will disable kgdb and kdb and allow MDB to function correctly.
Using Git to pull remote MDB Branches

You can also use git to pull any of the debugger branches into your
local git tree of the default linux and linux-stable git trees from
kernel.org and build MDB directly from your tree as each branch
corresponds to a particular kernel build and revision. To pull a
remote branch from your local repository type:

git remote add mdb https://github.com/jeffmerkey/linux.git

git fetch mdb mdb-(branch version) i.e. git fetch mdb mdb-v4.3

make certain you create a local branch to merge to

git checkout (kernel version) i.e. git checkout v4.3

git branch (mdb branch) i.e. git branch mdb-v4.3

git checkout (mdb branch) i.e. git checkout mdb-v4.3

then if you wish to commit those changes, type:

git merge mdb/(branch version) i.e. git merge mdb/mdb-v4.3

you can also just pull directly and skip the fetch/merge steps just
make certain you have created and switched to a local branch to commit
your changes into.

git pull mdb mdb-(branch version) i.e. git pull mdb mdb-v4.3

After you have merged your changes into your local branch, switch to
your local linux build directory then you can build your kernel by
typing:

make oldconfig

make bzImage modules modules_install install

then follow the instructions above for loading MDB from the linux command line.
Legacy MDB Versions (X86_64 and IA32)

Linux 2.6.X Patches and Diffs (X86_64)

Linux v2.6.37 : mdb-v2.6.37-x86_64.diff : mdb-v2.6.37-x86_64.patch
Linux v2.6.36 : mdb-v2.6.36-x86_64.diff : mdb-v2.6.36-x86_64.patch
Linux v2.6.35 : mdb-v2.6.35-x86_64.diff : mdb-v2.6.35-x86_64.patch
Linux v2.6.34 : mdb-v2.6.34-x86_64.diff : mdb-v2.6.34-x86_64.patch
Linux v2.6.33 : mdb-v2.6.33-x86_64.diff : mdb-v2.6.33-x86_64.patch
Linux v2.6.32 : mdb-v2.6.32-x86_64.diff : mdb-v2.6.32-x86_64.patch
Linux v2.6.31 : mdb-v2.6.31-x86_64.diff : mdb-v2.6.31-x86_64.patch
Linux v2.6.30 : mdb-v2.6.30-x86_64.diff : mdb-v2.6.30-x86_64.patch
Linux v2.6.29 : mdb-v2.6.29-x86_64.diff : mdb-v2.6.29-x86_64.patch
Linux v2.6.28 : mdb-v2.6.28-x86_64.diff : mdb-v2.6.28-x86_64.patch

Linux 2.6.X Branches (X86_64)

Linux kernel v2.6.37 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.37)
Linux kernel v2.6.36 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.36)
Linux kernel v2.6.35 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.35)
Linux kernel v2.6.34 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.34)
Linux kernel v2.6.33 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.33)
Linux kernel v2.6.32 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.32)
Linux kernel v2.6.31 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.31)
Linux kernel v2.6.30 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.30)
Linux kernel v2.6.29 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.29)
Linux kernel v2.6.28 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.28)

Legacy MDB Patches and Diffs (IA32 Only)

These versions are for older kernels and support IA32 only. They do
not support x86_64 based systems.

mdb-v2.6.27-ia32.diff : mdb-v2.6.27-ia32.patch
mdb-v2.6.26-ia32.diff : mdb-v2.6.26-ia32.patch
mdb-v2.6.25-ia32.diff : mdb-v2.6.25-ia32.patch
mdb-v2.6.24-ia32.diff : mdb-v2.6.24-ia32.patch
mdb-v2.6.23-ia32.diff : mdb-v2.6.23-ia32.patch
mdb-v2.6.22-ia32.diff : mdb-v2.6.22-ia32.patch
mdb-v2.6.21-ia32.diff : mdb-v2.6.21-ia32.patch
mdb-v2.6.20-ia32.diff : mdb-v2.6.20-ia32.patch
mdb-v2.6.19-ia32.diff : mdb-v2.6.19-ia32.patch
mdb-v2.6.18-ia32.diff : mdb-v2.6.18-ia32.patch

Legacy MDB Branches (IA32 Only)

Linux kernel v2.6.27 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.27)
Linux kernel v2.6.26 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.26)
Linux kernel v2.6.25 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.25)
Linux kernel v2.6.24 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.24)
Linux kernel v2.6.23 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.23)
Linux kernel v2.6.22 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.22)
Linux kernel v2.6.21 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.21)
Linux kernel v2.6.20 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.20)
Linux kernel v2.6.19 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.19)
Linux kernel v2.6.18 (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.18)


2015-12-01 23:01:27

by Jeffrey Merkey

[permalink] [raw]
Subject: Re: [ANNOUNCE] MDB Linux Kernel debugger kernels 2.6.19 through 4.3.0

Correct website address for patches is:

http://jeffmerkey.github.io/linux
http://www.jeffmerkey.com


On 12/1/15, Jeffrey Merkey <[email protected]> wrote:
> I am in process of completing testing all the branches. If you find a
> bug or have a problem with a build, then feel free to push a change to
> the git repo on github.com at https://github.com/jeffmerkey/linux.
> See the logs in the git repo for info on changes.
>
> Patches are available from github. To download patches and diffs, go to:
>
> http://jeffmerkey.github.io
>
> MDB (The Minimal Kernel Debugger) was written in 1998 and was one of
> the earliest debuggers on Linux. It was originally developed for Linux
> kernel file system development on the 2.2 series Linux kernels. MDB is
> a tool I wrote for my own use and development since at the time, Linux
> had no kernel debugger. MDB was open sourced in 2000. Over the years,
> I shared this tool with friends and co-workers, and continued to
> enhance it. Linux has since grown up and has several debugging tools
> available including KGDB and KDB.
>
> MDB supports a lot of features and capabilities and enhances the range
> of tools for debugging kernel applications on Linux. If MDB is useful
> to you, please feel free to contribute any changes or enhancements
> back. Currently MDB supports x86 and x86_64, but can be easily ported
> to other architectures.
>
> MDB is fast, loads as a module, and supports complex conditional
> breakpoints and disassembly on the fly, and is extremely useful for
> debugging in the field. It's also a great example of how to write a
> self-contained modular debugger that can load as a kernel module on
> Linux. MDB has an open plug and play architecture and you can add
> custom commands easily to the code, or support for other
> architectures.
>
> MDB uses the Native Linux Breakpoint API, which is platform
> independent. The current architecture support module in the debugger
> has all the code stubs for disassembly across all gcc compiler
> supported platforms, and simply require the specific gdb disassembly
> code sections for each architecture added to support that particular
> processor. Anyone interested in doing so feel free to fork this repo
> and have fun!
> Download
>
> Linux 4.X Diffs and Patches
>
> Linux v4.3 : mdb-v4.3-x86_64.diff : mdb-v4.3-x86_64.patch
> Linux v4.2 : mdb-v4.2-x86_64.diff : mdb-v4.2-x86_64.patch
> Linux v4.1 : mdb-v4.1-x86_64.diff : mdb-v4.1-x86_64.patch
> Linux v4.0 : mdb-v4.0-x86_64.diff : mdb-v4.0-x86_64.patch
>
> Linux 3.X Diffs and Patches
>
> Linux v3.19 : mdb-v3.19-x86_64.diff : mdb-v3.19-x86_64.patch
> Linux v3.18 : mdb-v3.18-x86_64.diff : mdb-v3.18-x86_64.patch
> Linux v3.17 : mdb-v3.17-x86_64.diff : mdb-v3.17-x86_64.patch
> Linux v3.16 : mdb-v3.16-x86_64.diff : mdb-v3.16-x86_64.patch
> Linux v3.15 : mdb-v3.15-x86_64.diff : mdb-v3.15-x86_64.patch
> Linux v3.14 : mdb-v3.14-x86_64.diff : mdb-v3.14-x86_64.patch
> Linux v3.13 : mdb-v3.13-x86_64.diff : mdb-v3.13-x86_64.patch
> Linux v3.12 : mdb-v3.12-x86_64.diff : mdb-v3.12-x86_64.patch
> Linux v3.11 : mdb-v3.11-x86_64.diff : mdb-v3.11-x86_64.patch
> Linux v3.10 : mdb-v3.10-x86_64.diff : mdb-v3.10-x86_64.patch
> Linux v3.9 : mdb-v3.9-x86_64.diff : mdb-v3.9-x86_64.patch
> Linux v3.8 : mdb-v3.8-x86_64.diff : mdb-v3.8-x86_64.patch
> Linux v3.7 : mdb-v3.7-x86_64.diff : mdb-v3.7-x86_64.patch
> Linux v3.6 : mdb-v3.6-x86_64.diff : mdb-v3.6-x86_64.patch
> Linux v3.5 : mdb-v3.5-x86_64.diff : mdb-v3.5-x86_64.patch
> Linux v3.4 : mdb-v3.4-x86_64.diff : mdb-v3.4-x86_64.patch
> Linux v3.3 : mdb-v3.3-x86_64.diff : mdb-v3.3-x86_64.patch
> Linux v3.2 : mdb-v3.2-x86_64.diff : mdb-v3.2-x86_64.patch
> Linux v3.1 : mdb-v3.1-x86_64.diff : mdb-v3.1-x86_64.patch
> Linux v3.0 : mdb-v3.0-x86_64.diff : mdb-v3.0-x86_64.patch
>
> MDB Linux Kernel Debugger Branches
>
> Linux 4.X Branches
>
> Linux kernel v4.3 (https://github.com/jeffmerkey/linux/tree/mdb-v4.3)
> Linux kernel v4.2 (https://github.com/jeffmerkey/linux/tree/mdb-v4.2)
> Linux kernel v4.1 (https://github.com/jeffmerkey/linux/tree/mdb-v4.1)
> Linux kernel v4.0 (https://github.com/jeffmerkey/linux/tree/mdb-v4.0)
>
> Linux 3.X Branches
>
> Linux kernel v3.19 (https://github.com/jeffmerkey/linux/tree/mdb-v3.19)
> Linux kernel v3.18 (https://github.com/jeffmerkey/linux/tree/mdb-v3.18)
> Linux kernel v3.17 (https://github.com/jeffmerkey/linux/tree/mdb-v3.17)
> Linux kernel v3.16 (https://github.com/jeffmerkey/linux/tree/mdb-v3.16)
> Linux kernel v3.15 (https://github.com/jeffmerkey/linux/tree/mdb-v3.15)
> Linux kernel v3.14 (https://github.com/jeffmerkey/linux/tree/mdb-v3.14)
> Linux kernel v3.13 (https://github.com/jeffmerkey/linux/tree/mdb-v3.13)
> Linux kernel v3.12 (https://github.com/jeffmerkey/linux/tree/mdb-v3.12)
> Linux kernel v3.11 (https://github.com/jeffmerkey/linux/tree/mdb-v3.11)
> Linux kernel v3.10 (https://github.com/jeffmerkey/linux/tree/mdb-v3.10)
> Linux kernel v3.9 (https://github.com/jeffmerkey/linux/tree/mdb-v3.9)
> Linux kernel v3.8 (https://github.com/jeffmerkey/linux/tree/mdb-v3.8)
> Linux kernel v3.7 (https://github.com/jeffmerkey/linux/tree/mdb-v3.7)
> Linux kernel v3.6 (https://github.com/jeffmerkey/linux/tree/mdb-v3.6)
> Linux kernel v3.5 (https://github.com/jeffmerkey/linux/tree/mdb-v3.5)
> Linux kernel v3.4 (https://github.com/jeffmerkey/linux/tree/mdb-v3.4)
> Linux kernel v3.3 (https://github.com/jeffmerkey/linux/tree/mdb-v3.3)
> Linux kernel v3.2 (https://github.com/jeffmerkey/linux/tree/mdb-v3.2)
> Linux kernel v3.1 (https://github.com/jeffmerkey/linux/tree/mdb-v3.1)
> Linux kernel v3.0 (https://github.com/jeffmerkey/linux/tree/mdb-v3.0)
>
> Installation
>
> Download the diff which matches your particular linux version, then
> apply the patch from your linux build directory. To download the diff
> and convert it into a patch file, click on the link for your kernel
> version for your system, then the patch text will display in your
> browser window, use your mouse to right click, then save as and save
> the patch into any filename you wish. It does not matter what filename
> you save the file under, you can choose any filename you wish, so long
> as it matches the filename you specify when you run the patch utility.
> To patch the kernel, from the linux build directory, type:
>
> (linux build directory) patch -p1 < filename.diff
>
> then type
>
> make oldconfig
>
> make bzImage modules modules_install install
>
> You can also type "make menuconfig" to manually adjust kernel settings
> for your debugger under the section "Kernel Hacking". After the kernel
> rebuilds, reboot your system to the new kernel and you can load MDB as
> a module.
> Loading MDB
>
> To load MDB as a module, type:
>
> modprobe mdb
>
> To enter the debugger type:
>
> echo a > /proc/sysrq-trigger
>
> The debugger has excellent online help, just type 'h' or 'help' from
> the debugger console for a list of commands. For help with a specific
> command, just type 'help (command)' where (command) is the command you
> need help with.
> Disabling KDB/KGDB
>
> You need to check whether or not another kernel debugger is active on
> the system, and if so, disable it. Both the KGDB and KDB debuggers are
> available as default build options on Linux. Only one debugger can be
> running at a time on the system to function properly. Don't try to run
> MDB if KDB or KGDB are active, disable them first. If MDB is compiled
> as a module, during module loading MDB will attempt to disable
> KGDB/KDB if it detects either is active. You may see something like
> this in your /var/log/messages file after the module loads which
> indicates it detected and disabled KGDB or KDB:
>
> Nov 30 10:28:49 localhost kernel: KGDB: Registered I/O driver kgdboc
> Nov 30 10:28:52 localhost kernel: MDB: kgdb currently set to
> [kdb], attempting to disable.
> Nov 30 10:28:52 localhost kernel: KGDB: Unregistered I/O driver
> kgdboc, debugger disabled
> Nov 30 10:28:52 localhost kernel: MDB: kgdb/kdb set to disabled.
> MDB is enabled.
>
> By default, MDB will always compile as a module unless you select it
> to compile directly into the kernel. If MDB is compiled in the kernel
> directly, you may need to check whether KGDB/KDB have been enabled
> before activating the MDB debugger.
>
> To check whether kdb or kgdb are running on your system, type:
>
> cat /sys/module/kgdboc/parameters/kgdboc
>
> if the text string "kdb", "kbd", or "tty"(some numbers) show up
> disable this interface by typing:
>
> echo "" > /sys/module/kgdboc/parameters/kgdboc
>
> which will disable kgdb and kdb and allow MDB to function correctly.
> Using Git to pull remote MDB Branches
>
> You can also use git to pull any of the debugger branches into your
> local git tree of the default linux and linux-stable git trees from
> kernel.org and build MDB directly from your tree as each branch
> corresponds to a particular kernel build and revision. To pull a
> remote branch from your local repository type:
>
> git remote add mdb https://github.com/jeffmerkey/linux.git
>
> git fetch mdb mdb-(branch version) i.e. git fetch mdb mdb-v4.3
>
> make certain you create a local branch to merge to
>
> git checkout (kernel version) i.e. git checkout v4.3
>
> git branch (mdb branch) i.e. git branch mdb-v4.3
>
> git checkout (mdb branch) i.e. git checkout mdb-v4.3
>
> then if you wish to commit those changes, type:
>
> git merge mdb/(branch version) i.e. git merge mdb/mdb-v4.3
>
> you can also just pull directly and skip the fetch/merge steps just
> make certain you have created and switched to a local branch to commit
> your changes into.
>
> git pull mdb mdb-(branch version) i.e. git pull mdb mdb-v4.3
>
> After you have merged your changes into your local branch, switch to
> your local linux build directory then you can build your kernel by
> typing:
>
> make oldconfig
>
> make bzImage modules modules_install install
>
> then follow the instructions above for loading MDB from the linux command
> line.
> Legacy MDB Versions (X86_64 and IA32)
>
> Linux 2.6.X Patches and Diffs (X86_64)
>
> Linux v2.6.37 : mdb-v2.6.37-x86_64.diff : mdb-v2.6.37-x86_64.patch
> Linux v2.6.36 : mdb-v2.6.36-x86_64.diff : mdb-v2.6.36-x86_64.patch
> Linux v2.6.35 : mdb-v2.6.35-x86_64.diff : mdb-v2.6.35-x86_64.patch
> Linux v2.6.34 : mdb-v2.6.34-x86_64.diff : mdb-v2.6.34-x86_64.patch
> Linux v2.6.33 : mdb-v2.6.33-x86_64.diff : mdb-v2.6.33-x86_64.patch
> Linux v2.6.32 : mdb-v2.6.32-x86_64.diff : mdb-v2.6.32-x86_64.patch
> Linux v2.6.31 : mdb-v2.6.31-x86_64.diff : mdb-v2.6.31-x86_64.patch
> Linux v2.6.30 : mdb-v2.6.30-x86_64.diff : mdb-v2.6.30-x86_64.patch
> Linux v2.6.29 : mdb-v2.6.29-x86_64.diff : mdb-v2.6.29-x86_64.patch
> Linux v2.6.28 : mdb-v2.6.28-x86_64.diff : mdb-v2.6.28-x86_64.patch
>
> Linux 2.6.X Branches (X86_64)
>
> Linux kernel v2.6.37
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.37)
> Linux kernel v2.6.36
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.36)
> Linux kernel v2.6.35
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.35)
> Linux kernel v2.6.34
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.34)
> Linux kernel v2.6.33
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.33)
> Linux kernel v2.6.32
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.32)
> Linux kernel v2.6.31
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.31)
> Linux kernel v2.6.30
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.30)
> Linux kernel v2.6.29
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.29)
> Linux kernel v2.6.28
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.28)
>
> Legacy MDB Patches and Diffs (IA32 Only)
>
> These versions are for older kernels and support IA32 only. They do
> not support x86_64 based systems.
>
> mdb-v2.6.27-ia32.diff : mdb-v2.6.27-ia32.patch
> mdb-v2.6.26-ia32.diff : mdb-v2.6.26-ia32.patch
> mdb-v2.6.25-ia32.diff : mdb-v2.6.25-ia32.patch
> mdb-v2.6.24-ia32.diff : mdb-v2.6.24-ia32.patch
> mdb-v2.6.23-ia32.diff : mdb-v2.6.23-ia32.patch
> mdb-v2.6.22-ia32.diff : mdb-v2.6.22-ia32.patch
> mdb-v2.6.21-ia32.diff : mdb-v2.6.21-ia32.patch
> mdb-v2.6.20-ia32.diff : mdb-v2.6.20-ia32.patch
> mdb-v2.6.19-ia32.diff : mdb-v2.6.19-ia32.patch
> mdb-v2.6.18-ia32.diff : mdb-v2.6.18-ia32.patch
>
> Legacy MDB Branches (IA32 Only)
>
> Linux kernel v2.6.27
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.27)
> Linux kernel v2.6.26
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.26)
> Linux kernel v2.6.25
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.25)
> Linux kernel v2.6.24
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.24)
> Linux kernel v2.6.23
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.23)
> Linux kernel v2.6.22
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.22)
> Linux kernel v2.6.21
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.21)
> Linux kernel v2.6.20
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.20)
> Linux kernel v2.6.19
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.19)
> Linux kernel v2.6.18
> (https://github.com/jeffmerkey/linux/tree/mdb-v2.6.18)
>