cvs commit: src/sys/ia64/ia64 machdep.c trap.c

Marcel Moolenaar marcel at FreeBSD.org
Sat Aug 7 17:28:07 PDT 2004


marcel      2004-08-08 00:28:07 UTC

  FreeBSD src repository

  Modified files:
    sys/ia64/ia64        machdep.c trap.c 
  Log:
  Implement single stepping when we leave the kernel through the EPC syscall
  path. The basic problem is that we cannot set the single stepping flag
  directly, because we don't leave the kernel via an interrupt return. So,
  we need another way to set the single stepping flag.
  The way we do this is by enabling the lower-privilege transfer trap, which
  gets raised when we drop the privilege level. However, since we're still
  running in kernel space (sec), we're not yet done. We clear the lower-
  privilege transfer trap, enable the taken-branch trap and continue exiting
  the kernel until we branch into user space.
  Given the current code, there's a total of two traps this way before
  we can raise SIGTRAP.
  
  Revision  Changes    Path
  1.182     +22 -2     src/sys/ia64/ia64/machdep.c
  1.103     +41 -2     src/sys/ia64/ia64/trap.c


More information about the cvs-src mailing list