edb uses QtPlugin for plugins, this means that all plugins must be built using this system. All includes relating to plugins and data they can access can be found in the root include directory, you should add this to the include path of the .pro file you use to compile your plugins. The simplest way to do this is to put your plugin code in the same directory structure as edb and have your .pro file include plugins.pri Several classes are provided as utility classes. For example, ByteShiftArray provides a "shift register" of bytes, which is good for finding a pattern of a specific length in a stream. BinaryString is provided as a reusable widget which will display 3 text fields (ascii/utf-16/hex) and update all 3 as the user types which appropriate values (similar to the binary string input system of OllyDbg). Currently, there are two main types of plugins, "DebuggerPlugin" which is a general purpose plugin and "DebuggerCore" which is uses to implement the core debugging functionality. Most likley you will want to create a "DebuggerPlugin". To create a "DebuggerPlugin" plugin, you must inherit from DebuggerPluginInterface found in include/DebuggerPluginInterface.h. It requires that you implement the following virtual function(s): virtual QMenu *menu(QWidget *parent = 0) = 0; This will return a menu object which will be added to the "plugins" in edb. When this menu item is activated, you may do whatever you wish. Basic operations for implementing the plugin functionality can be found in include/Debugger.h which defines the "edb" namespace.