Correct support for single stepping of syscalls and fpu emulation

This commit is contained in:
ws 1993-12-20 17:16:42 +00:00
parent f92e10ca14
commit cf3c69ea3b
2 changed files with 6 additions and 7 deletions

View File

@ -1867,6 +1867,9 @@ bpttraps:
IDTVEC(syscall)
pushl $0 # Room for tf_err
pushfl # Room for tf_trapno
pushfl # turn off trace bit
andb $~(PSL_T>>8),1(%esp)
popfl
INTRENTRY
movl TF_TRAPNO(%esp),%eax # copy eflags from tf_trapno to fs_eflags
movl %eax,TF_EFLAGS(%esp)

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)trap.c 7.4 (Berkeley) 5/13/91
* $Id: trap.c,v 1.20 1993/12/19 06:58:15 mycroft Exp $
* $Id: trap.c,v 1.21 1993/12/20 17:16:47 ws Exp $
*/
/*
@ -260,10 +260,8 @@ trap(frame)
#ifdef MATH_EMULATE
rv = math_emulate(&frame);
if (rv == 0) {
#ifdef TRACE_EMU /* XXX is this necessary? */
if (frame.tf_eflags & PSL_T)
goto trace;
#endif
return;
}
#else
@ -378,10 +376,8 @@ trap(frame)
#ifndef DDB
/* XXX need to deal with this when DDB is present, too */
case T_TRCTRAP:
/* kernel trace trap -- someone single stepping lcall's */
frame.tf_eflags &= ~PSL_T;
/* restored later from lcall frame */
case T_TRCTRAP: /* kernel trace trap -- someone single stepping lcall's */
/* syscall has to turn off the trace bit itself */
return;
#endif