====== lDebugX compatibility tweaks, dosemu2 native DPMI bugfix ====== After [[https://github.com/dosemu2/dosemu2/discussions/1609|some discussion]] on lDebugX running a DPMI client in dosemu2 on a hosteurope virtual server, several changes were made to both lDebugX and dosemu2. dosemu2 got [[https://github.com/dosemu2/dosemu2/issues/1615|a genuine bugfix]] out of this. Or [[https://github.com/dosemu2/dosemu2/issues/1620|two]]. Or [[https://github.com/dosemu2/dosemu2/issues/1616|three]]. ===== ===== lDebugX changes include: * [[https://hg.pushbx.org/ecm/ldebug/rev/8b922d9f2d4e|zeroing a field in the 86M register structure]] * [[https://hg.pushbx.org/ecm/ldebug/rev/2ceb9080a25e|option to set B bit of debugger's stack segment]] (run on a 32-bit stack, albeit still in the low 64 KiB) * [[https://hg.pushbx.org/ecm/ldebug/rev/3964726454c4|some general hardening for esp use]] * [[https://hg.pushbx.org/ecm/ldebug/rev/ddef2af434b9|option to break into the debugger upon entering Protected Mode]] This last one is mostly a convenience really. It does open up an interesting possibility when debugging lDDebugX using lDebugX: if the outer lDebugX sets the option, it will gain control when the inner lDDebugX's ''installdpmi'' handler starts executing. However, as the debuggee is technically running in lDDebugX's client context here, the debuggable debugger will set up its own PM handlers. That means that the outer lDebugX cannot safely trace past [[https://hg.pushbx.org/ecm/ldebug/file/3e124d82e507/source/pminit.asm#l365|the point at which lDDebugX's exception handlers are installed]]. {{tag>ldebug dpmi dosemu2 bugfix}} ~~DISCUSSION~~