diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-03-19 13:02:54 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-03-19 13:02:54 (GMT) |
commit | 94fd405bb0c2e6dfa43324b04a336ffb611c58ce (patch) | |
tree | f3170587b4006fa358665a6bbfa301731503d3b3 /plugins/pychrysa/debug/module.c | |
parent | 499f00977cd7f50ce0c4cf24dd59b1e920e5b180 (diff) |
Provided initial features for debugging using GDB.
Diffstat (limited to 'plugins/pychrysa/debug/module.c')
-rw-r--r-- | plugins/pychrysa/debug/module.c | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/plugins/pychrysa/debug/module.c b/plugins/pychrysa/debug/module.c index f4b1ff3..db33a13 100644 --- a/plugins/pychrysa/debug/module.c +++ b/plugins/pychrysa/debug/module.c @@ -26,6 +26,7 @@ #include "debugger.h" +#include "gdbrsp/module.h" @@ -43,23 +44,45 @@ bool add_debug_module_to_python_module(PyObject *super) { - bool result; - PyObject *module; + bool result; /* Bilan à retourner */ + PyObject *module; /* Sous-module mis en place */ int ret; /* Bilan d'un appel */ - static PyMethodDef py_debug_methods[] = { - { NULL } + static PyModuleDef py_chrysalide_debug_module = { + + .m_base = PyModuleDef_HEAD_INIT, + + .m_name = "pychrysalide.debug", + .m_doc = "Python module for Chrysalide.debug", + + .m_size = -1, + }; - module = Py_InitModule("pyoida.debug", py_debug_methods); + result = false; + + module = PyModule_Create(&py_chrysalide_debug_module); if (module == NULL) return false; + ret = PyState_AddModule(super, &py_chrysalide_debug_module); + if (ret != 0) goto loading_failed; + + ret = _PyImport_FixupBuiltin(module, "pychrysalide.debug"); + if (ret != 0) goto loading_failed; + Py_INCREF(module); - ret = PyModule_AddObject(super, "pyoida.debug", module); + ret = PyModule_AddObject(super, "debug", module); + if (ret != 0) goto loading_failed; + + result = true; + + result &= register_python_binary_debugger(module); + + result &= add_debug_gdbrsp_module_to_python_module(module); - result = (ret == 0); + loading_failed: - //result &= register_python_binary_debugger(module); + assert(result); return result; |