I just checked in new interface for debugger frontend into Bochs CVS tree. The new interface is not multiplatform yet - hile trying to separate things and get multiplatform code compiling separately from platform dependent Win32 code I found that it can't be done now yet.
Your new interface contains two potentially platform independent files - enh_dbg.cc (non-plugin object) and enh_dbg.h.
They both compiled only with BX_DEBUGGER enabled, when BX_DEBUGGER is 0 they turned to be empty files.
The platform dependent module for Win32 is win32_enh_dbg_osdep.cc. It includes enh_dbg.h and wenhdbg_h.h. Probably in future it would be very good idea to merge these two header files into single file.
enh_dbg.h contains function definitions from enh_dbg.cc which turn out to be used in win32_enh_dbg_osdep.cc and of course will be used by X-Windows osdep.cc as well.
While separating modules I found one platform-dep issue there:
Code: Select all
// FIXME: platform dependent!
#define TreeParent HTREEITEM
void MakeTreeChild (HTREEITEM *h_P, int ChildCount, HTREEITEM *h_TC);
Also I had to move all definitions from wenhdbg_h.h into enh_dbg.cc. It turned out of course that some of them used both in enh_dbg.cc and win32_enh_dbg_osdep.cc (very bad according to my opinion) so I converted the definitions in wenhdbg_h.h to bunch of externs. At some point I was just tired to see if one or another var is used in osdep file so probably many of the externs are redundant. Hope you will help me to clean the things out.
Now it could be a nie excercise for you to try to integrate X-Windows frontend into the same environment. When you put it into enh_dbg.cc and header file you actually masking many of real problems. Would wish you to have fun, waiting for new patch from quok !
Thanks,
Stanislav