edb is a cross platform x86/x86-64 debugger. It was inspired by Ollydbg, but aims to function on x86 and x86-64 as well as multiple OS's. Linux is the only officially supported platform at the moment, but FreeBSD, OpenBSD, OSX and Windows ports are underway with varying degrees of functionality.
edb is available under the GPL 2 license, see the COPYING for details.
NOTE: This README now only covers the most essential documentation, for more complete documentation see the wiki
When cloning the repo, please use git's --recursive
flag to ensure that the sub-modules will be properly cloned and updated to the correct versions. Here is an example:
git clone --recursive git@github.com:eteran/edb-debugger.git
Compiling edb is generally quite simple. edb currently depends on the following packages:
Dependency | Version Required |
---|---|
Qt | >= 4.6 |
Boost (Headers Only) | >= 1.35 |
Capstone | >= 3.0 |
Many distributions already have packages that satisify these.
Once you have the necessary dependencies installed, there are two options for compiling:
If you plan to just run edb out of the build directory, it's as simple as this:
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./edb
If you would like to properly install edb on the system for all users, it's only a little different:
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
$ make
$ make install
$ edb
$ qmake
$ make
This will build the debugger along with all included plugins. On certain
systems your qmake may be named slightly differently. For example, some distributions
name the Qt4 version of qmake as qmake-qt4
.
If you are planning on doing a make install, you likely want to specify the default plugin path, here's how you would do that.
$ qmake -makefile DEFAULT_PLUGIN_PATH="/usr/lib/edb/"
$ make
Also you can specify the install prefix like this:
$ qmake PREFIX=/usr/
$ make
Basic installation is simple, you may run
$ make install
In which case the plugins will be installed in /usr/local/lib/edb
and the binaries
will be installed in /usr/local/bin/
or, if you've specified PREFIX
, then it'll be
used instead of /usr/local/
. Finally, as described above, if you are doing a
make install
, you probably want to specify a default plugin path, this is done during
the qmake process.