drgui DynamoRIO Extension provides a DynamoRIO independent graphical application framework that can be used to provide a front-end for a DynamoRIO Extension or tool.
Plugins must use Qt 5 to maintain compatibility with
drgui because Qt 5 is not backwards compatible.
drgui with your plugin simply include this line in your plugin's CMakeLists.txt file:
That will automatically set up the include path and library dependence.
Your plugin should be built with cmake in order to maintain compatibility with the rest of DynamoRIO. For details on this, see the Qt documentation here and reference
ext/drgui/CmakeLists.txt for example usage.
The recommended method of turning a Qt application into a
drgui plugin is to create a factory which implements
If your plugin requires persistent preferences then implementing
drgui_options_interface_t will create a section for the plugin in
drgui 's preferences dialog. It is up to the author of the plugin to decide how to store the preferences. However, the recommended method is to use QSettings.
drgui provides command line arguments that can be used to auto-load plugins. This feature can also be used to pass arguments to the plugin that is being automatically loaded.
The -t option can be passed either the name of the plugin, or the location of the plugin in the file system. Any further arguments are passed to the plugin when it is loaded.
drgui and any plugins be aware of Qt's LGPL license restrictions. Namely, restrictions concerning static linking to the Qt libraries.
If static linking is not an option then the required Qt libraries should be packaged with the application as shared libraries. Otherwise, installing Qt 5 will be a requirement for a user.