Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 Jul 2005 01:03:29 -0000
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/i386/i386 db_trace.c
Message-ID:  <200501180348.j0I3m2l4004931@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2005-01-18 03:48:02 UTC

  FreeBSD src repository

  Modified files:
    sys/i386/i386        db_trace.c 
  Log:
  Unbreak stack traces across double faults.  In a particular edge case
  (calling a __dead2 function such as panic() at the end of a function), the
  saved %eip on the stack will actually not be part of the function that
  executed a call instruction but instead will be the first instruction of
  the next function in the text.  This happens with dblfault_handler() and
  syscall() for example.  Work around this in the one place it matters by
  looking at the saved %eip - 1 to determine the calling function when we
  check for "magic" frames.
  
  MFC after:      2 weeks
  
  Revision  Changes    Path
  1.66      +8 -2      src/sys/i386/i386/db_trace.c




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200501180348.j0I3m2l4004931>