summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-02-01 01:14:01 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-02-01 01:14:01 (GMT)
commit14e82ed268cb78d62bbba93357fede5ece5c4f7d (patch)
tree76e146d4dcf7b6db67b51eb8f75a6c5e76bf6896 /src/plugins
parenteacb69625d51707ac0a158815a53f71fb70968ce (diff)
Provided interfaces to use debuggers in plugins.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@231 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/plugin-def.h8
-rw-r--r--src/plugins/plugin-int.h6
-rw-r--r--src/plugins/plugin.c23
-rw-r--r--src/plugins/plugin.h4
4 files changed, 36 insertions, 5 deletions
diff --git a/src/plugins/plugin-def.h b/src/plugins/plugin-def.h
index 67b26d6..0c7ff1c 100644
--- a/src/plugins/plugin-def.h
+++ b/src/plugins/plugin-def.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* plugin-def.h - prototypes pour les définitions de base utiles aux greffons
*
- * Copyright (C) 2009-2011 Cyrille Bagard
+ * Copyright (C) 2009-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -27,6 +27,7 @@
#include "../analysis/binary.h"
+#include "../debug/debugger.h"
@@ -48,7 +49,10 @@ typedef enum _PluginAction
PGA_DISASSEMBLE = (1 << 1), /* Désassemblage (non trivial) */
- PGA_CODE_PROCESS = (1 << 2) /* Traitement du code existant */
+ PGA_CODE_PROCESS = (1 << 2), /* Traitement du code existant */
+
+ PGA_DEBUGGER_ATTACH = (1 << 3), /* Activation d'un débogueur */
+ PGA_DEBUGGER_DETACH = (1 << 4) /* Désactivation d'un débogueur*/
} PluginAction;
diff --git a/src/plugins/plugin-int.h b/src/plugins/plugin-int.h
index 1ab8d36..a4f3cb6 100644
--- a/src/plugins/plugin-int.h
+++ b/src/plugins/plugin-int.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* plugin-int.h - prototypes pour les structures internes des greffons
*
- * Copyright (C) 2010-2011 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -42,6 +42,9 @@ typedef PluginAction (* get_plugin_action_fc) (const GPluginModule *);
/* Identifie un format à associer à un contenu binaire. */
typedef MatchingFormatAction (* is_matching_fc) (const GPluginModule *, char **, bin_t **, off_t *);
+/* Exécute une action relative à un débogueur. */
+typedef bool (* execute_on_debugger_fc) (const GPluginModule *, GBinaryDebugger *, PluginAction);
+
/* Greffon pour OpenIDA (instance) */
struct _GPluginModule
@@ -58,6 +61,7 @@ struct _GPluginModule
is_matching_fc is_matching; /* Recherche de correspondance */
execute_action_on_binary_fc exec_on_bin;/* Action sur un binaire */
+ execute_on_debugger_fc handle_debugger; /* Action liée à un débogueur */
};
diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c
index d654df1..7521008 100644
--- a/src/plugins/plugin.c
+++ b/src/plugins/plugin.c
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* plugin.c - interactions avec un greffon donné
*
- * Copyright (C) 2009-2011 Cyrille Bagard
+ * Copyright (C) 2009-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -265,3 +265,24 @@ bool g_plugin_module_execute_action_on_binary(const GPluginModule *plugin, GOpen
return plugin->exec_on_bin(binary, action);
}
+
+
+/******************************************************************************
+* *
+* Paramètres : plugin = greffon à consulter. *
+* debugger = débogueur à l'origine de l'opération. *
+* action = action attendue. *
+* *
+* Description : Exécute une action relative à un débogueur. *
+* *
+* Retour : true si une action a été menée, false sinon. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bool g_plugin_module_handle_debugger(const GPluginModule *plugin, GBinaryDebugger *debugger, PluginAction action)
+{
+ return plugin->handle_debugger(plugin, debugger, action);
+
+}
diff --git a/src/plugins/plugin.h b/src/plugins/plugin.h
index 85b6db9..dbd27fd 100644
--- a/src/plugins/plugin.h
+++ b/src/plugins/plugin.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* plugin.h - prototypes pour les interactions avec un greffon donné
*
- * Copyright (C) 2009-2011 Cyrille Bagard
+ * Copyright (C) 2009-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -63,6 +63,8 @@ MatchingFormatAction g_plugin_module_is_matching(const GPluginModule *, char **,
/* Exécute une action définie sur un binaire chargé. */
bool g_plugin_module_execute_action_on_binary(const GPluginModule *, GOpenidaBinary *, PluginAction);
+/* Exécute une action relative à un débogueur. */
+bool g_plugin_module_handle_debugger(const GPluginModule *, GBinaryDebugger *, PluginAction);