www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1998/07/27/10:36:21

Date: Mon, 27 Jul 1998 17:35:31 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: DJ Delorie <dj AT delorie DOT com>
cc: salvador AT inti DOT gov DOT ar, djgpp-workers AT delorie DOT com
Subject: Re: Pipes
In-Reply-To: <199807271309.JAA21579@delorie.com>
Message-ID: <Pine.SUN.3.91.980727173047.779L-100000@is>
MIME-Version: 1.0

On Mon, 27 Jul 1998, DJ Delorie wrote:

> * In fact, gdb traps int 0x31.  Maybe your shell could somehow trap
>   that *before* it gets to the DPMI server, so that longjump is still an
>   option?

I think there's no problem to longjmp from a software interrupt handler. 
GDB's source is full of longjmp's (that's Richard Stallman's way of
writing interactive programs, Emacs does the same), and we never have any
problems with that, even though GDB hooks PM Int 31h for its work. 

> * Has anyone tried longjumping from one djgpp program to another
>   (parent/child) program?

Will longjmp work across different selectors?  (The child has a different 
CS/DS/SS, right?)

>   If this works, the fsext can longjump
>   to the shell, which can longjump to the other programs.

This would require cooperation from the child.  (It needs to install an 
FSEXT hook itself.)  In contrast, hooking Int 31h in PM only requires the 
parent to do something special, while the child is oblivious.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019