You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By loading lDebug as a device driver I inspected the system state during device init. It turns out that the kernel sets up an init PSP at segment 60h. This process is self-owned, but its Parent Return Address / int 22h vector appears to be uninitialised:
&; Welcome to dev mode lDebug
-r psp .
PSP 0060
-r parent .
PARENT 0060
-r pra .
PRA 00D91289
-u ptr pra l 1
00D9:1289 CF iret
-
The same iret is used as the handler for eg int 2Dh. When the kernel returns from a termination, it will branch to the PRA with the parent's last int 21h stack, which generally will not contain a valid far return address for this iret to use.
I fixed my application to not try to terminate the init process in https://hg.pushbx.org/ecm/ldebug/rev/5740dcb40620 However, I think the kernel should handle its init process being terminated. Control-C and Critical Error Abort could possibly terminate the init process, too.
The text was updated successfully, but these errors were encountered:
By loading lDebug as a device driver I inspected the system state during device init. It turns out that the kernel sets up an init PSP at segment 60h. This process is self-owned, but its Parent Return Address / int 22h vector appears to be uninitialised:
The same
iret
is used as the handler for eg int 2Dh. When the kernel returns from a termination, it will branch to the PRA with the parent's last int 21h stack, which generally will not contain a valid far return address for thisiret
to use.I fixed my application to not try to terminate the init process in https://hg.pushbx.org/ecm/ldebug/rev/5740dcb40620 However, I think the kernel should handle its init process being terminated. Control-C and Critical Error Abort could possibly terminate the init process, too.
The text was updated successfully, but these errors were encountered: