Skip to content
Snippets Groups Projects
  1. Oct 10, 2009
  2. Jun 11, 2009
  3. Dec 02, 2008
  4. Aug 16, 2008
  5. Jan 03, 2008
    • cshapiro's avatar
      Switch the FreeBSD port to use the common floating point trap handling · 9495c516
      cshapiro authored
      code.  Rather than introduce a new FreeBSD case to the x86 sigcontext
      member accessor routines, collapse all of the system specific routines
      down to a common set of routines.
      
      * code/debug-int.lisp - Disable some Darwin-specific code to debug
        NULL mcontext pointers.
      
      * code/float-trap.lisp - Remove ancient FreeBSD-specific code for
        handling floating point signals.
      
      * code/macros.lisp, code/sap.lisp, compiler/saptran.lisp - Include the
        SAP-REF-LONG setter by default on the x86.
      
      * code/x86-vm.lisp - Remove operating system specific sigcontext
        definitions and sigcontext accessors.  Define the alien sigcontext
        as a system area pointer.  Replace the sigcontext accessors with
        foreign function calls that mask the complexity of the underlying
        sigcontext member access.
      
      * compiler/x86/float.lisp - Unconditionally define STORE-LONG-FLOAT.
        This function is used by the %SET-SAP-REF-LONG VOP that underlies
        the SAP-REF-LONG setter.
      
      * compiler/x86/sap.lisp - Unconditionally define %SET-SAP-REF-LONG.
        In the case where there is not a distinct LONG-FLOAT type, admit
        DOUBLE-FLOAT values instead.  The x87 automatically widens values
        pushed onto stack.  This mirrors the behavior of the SAP-REF-LONG
        VOP.
      
      * lisp/Darwin-os.c, lisp/Linux-os.c - Define functions to access
        sigcontext members of interest to Lisp.  Delete the sc_reg function
        and replace its uses with os_sigcontext_reg which is more suitably
        typed.
      
      * lisp/FreeBSD-os.c - Define functions to access sigcontext members of
        interest to Lisp.  We need to be careful about the SSE and non-SSE
        cases for retrieving x87 registers from the saved machine state.
        Define a low-level SIGFPE handler to intercept floating point traps
        and restore the cleared status word bits based on the signal code.
        Get rid of sc_reg for the reasons noted above.
      
      * lisp/Darwin-os.h, lisp/FreeBSD-os.h - Declare the restore_fpu
        function and define a specialized RESTORE_FPU macro.  Remove the
        sc_reg prototype.
      
      * lisp/Linux-os.h - Remove the sc_reg prototype.
      
      * lisp/os.h - Add prototypes for the new os_sigcontext functions.
      
      * lisp/x86-lispregs.h - Redefine SC_REG and SC_PC to expand out to the
        new os_sigcontext functions.  Redfine SC_SP to expand out to SC_REG.
        Eliminate all platform-specific defintions of SC_PC and SC_SP.
      9495c516
  6. Dec 18, 2007
  7. Dec 15, 2007
    • rtoy's avatar
      Tracing with :encapsulate NIL works on Darwin now. There are some · 7d7c3c3e
      rtoy authored
      issues like why the mcontext slot is 0 in the sigcontext from a
      function end breakpoint.  This works around that problem for now.
      
      lisp/x86-arch.c:
      o Add documentation on how arch_do_displaced_inst works.
      o Darwin has the eflags register in the sigcontext so use that to
        enable and disable single-stepping using the eflags slot.  This is
        how Linux works too.  This change makes function start breakpoints
        work.
      
      code/debug-int.lisp:
      o In FIND-ESCAPED-FRAME, make sure the mcontext slot is not null (0)
        before we try to grab the cfp slot from it.  This works around an
        issue where the mcontext slot is 0 on Darwin.
      
      code/ntrace.lisp:
      o Make *TRACE-ENCAPSULATE-DEFAULT* be :default again.
      7d7c3c3e
  8. Oct 18, 2007
    • rtoy's avatar
      Slight reimplemention of how tracing of local functions is done. We · 620750d0
      rtoy authored
      don't do the hackish list-of-name to find local debug function
      anymore.  This change allows us to retrace local functions when the
      function is redefined.
      
      code/debug-int.lisp:
      o Add :LOCAL-NAME keyword parameter to tell us to look for the local
        function within the given FUN.  The bizarre hack using a list as the
        FUN to do this is now gone.
      
      code/ntrace.lisp:
      o Change TRACE-FDEFINITION to return a fourth value if the function is
        a local function.  The fourth value is the name of the local
        function.
      
      o TRACE-1 recognizes the extra value from TRACE-FDEFINITION to
        determine if this is a local function that needs to be traced.
        Also, if DEFINITION is given, we process that carefully so we can
        trace the new definition with a local function.
      
      o UNTRACE-1 likewise updated to recognize and handle local functions.
      
      o TRACE-REFINED-UPDATE modified so that when a function is redefined,
        we retrace the function itself if it was traced (as before).  But we
        also look through the traced functions to see if we need to retrace
        the local definitions in this new function.
      620750d0
  9. Oct 02, 2007
    • rtoy's avatar
      compiler/locall.lisp · 63ddf98f
      rtoy authored
      o In MAYBE-CONVERT-TAIL-LOCAL-CALL, honor the notinline declaration
        when deciding if we can let convert a tail call.  This is useful for
        tracing of local functions.
      
      code/debug-int.lisp:
      o If we can't find a debug function, print a note that the (local)
        function might have been inlined.
      63ddf98f
  10. Jul 06, 2007
  11. Mar 28, 2007
    • rtoy's avatar
      o Fix typo handling complex-double-double-reg-sc-number case. · 81eabad0
      rtoy authored
      o Fix extra paren for double-double-stack-sc-number case, and don't
        use with-nfp which doesn't exist on x86.
      o Add support for complex-double-double-stack-sc-number, which was
        missing for x86.
      81eabad0
    • rtoy's avatar
      o Remove some extraneous (typo) parens for · 139cb256
      rtoy authored
        double-double-stack-sc-number and
        complex-double-double-stack-sc-number.
      o The complex-double-double-stack-sc-number case was not computed the
        complex double-double correctly.  Fix it.
      139cb256
  12. Mar 27, 2007
  13. Jun 30, 2006
  14. Jan 23, 2006
    • rtoy's avatar
      Implement tracing of flet/labels functions. This probably needs more · 45d04c07
      rtoy authored
      work and could probably be implemented better.
      
      With these changes (trace (labels foo bar)) will trace the labels
      function FOO in the function BAR.  We only support encapsulate nil,
      here.  No check is made for this.
      
      code/ntrace.lisp:
      o In TRACE-FDEFINITION, recognize a list as a valid function, and
        return the list as the value of TRACE-FDEFINITION.  This seems
        wrong, but I'm not sure if there's a real fdefinition for it, or if
        we could create a fake one.
      
      code/debug-int.lisp:
      o In FUNCTION-DEBUG-FUNCTION, recognize a list as the name of a
        function, and find the corresponding compiled-debug-function and
        create and return the new compiled-debug-function.
      45d04c07
  15. Mar 18, 2005
  16. Mar 17, 2005
    • rtoy's avatar
      Implement tracing for the known-return convention. This is basically · 46a81e81
      rtoy authored
      Helmut Eller's patch sent to cmucl-imp on 2005-03-08.  This basically
      means tracing recursive functions will show all recursions during the
      trace and not just the final call.
      
      code/debug-int.lisp:
      o Apply Helmut's patch.  Tweak it so when the known-return convention
        is being used, we tell MAKE-BOGUS-LRA that we're using the
        known-return so we can handle it properly.
      
      lisp/breakpoint.c:
      o Add an extra parameter to compute_offset so we know we're handling a
        function-end breakpoint or not.  Needed because reg_CODE isn't
        pointing to the bogus lra in this case, so the offsets are all
        wrong.  We compute the right offset for the known return and return
        the offset as negative so we can tell.
      o Adjust all callers of compute_offset.
      o Adjust handle_function_end_breakpoint to handle negative offsets
        from compute_offset so we can get the right code component for the
        bogus lra.
      46a81e81
  17. Nov 20, 2004
  18. Nov 19, 2004
  19. Nov 17, 2004
  20. Nov 16, 2004
    • cwang's avatar
      typo · e40848aa
      cwang authored
      e40848aa
  21. Oct 13, 2004
  22. Aug 30, 2004
  23. Aug 03, 2004
  24. Jul 30, 2004
  25. Jul 29, 2004
    • rtoy's avatar
      (defun foo () (zot)) when compiled and run gave a silly message about · 7d79b30c
      rtoy authored
      #C(0d0 0d0) failing a typecase.  Then doing a backtrace gave another
      error about some negative number not being a positive fixnum.
      
      The former error is caused by a bad definition of undefined_tramp.
      The latter error is caused by the debugger not being able to compute
      the offset correctly.
      
      (Fixes ported from sbcl.)
      7d79b30c
  26. Jun 01, 2004
  27. Apr 01, 2004
    • rtoy's avatar
      From Helmut Eller: · 0519cdf6
      rtoy authored
      parse-compiled-debug-function-lambda-list fails for
      
        (di::debug-function-lambda-list
          (di::function-debug-function
            #'pcl::fix-early-generic-functions))
      
      because it tries to nconc the supplied-p var to a deleted keyword arg.
      0519cdf6
  28. Nov 25, 2003
  29. Nov 21, 2003
  30. Aug 24, 2003
    • gerd's avatar
      Debugger signalling an error when a function parameter is · b8e7cf93
      gerd authored
      	a special variable.  Reported by Alexey Dejneka on cmucl-imp.
      	This fixes the read case, but not the setq case.
      
      	* src/code/debug-int.lisp (preprocess-for-eval): Don't
      	symbol-macrolet special variables, let-bind them instead.
      b8e7cf93
  31. Jul 21, 2003
    • gerd's avatar
      * src/code/ntrace.lisp (trace-1): Encapsulate if · ed92e5cc
      gerd authored
      	can-set-function-end-breakpoint-p returns false.
      
      	* src/code/debug-int.lisp (can-set-function-end-breakpoint-p):
      	Return true of compiled-debug-function-returns is :standard.
      ed92e5cc
  32. May 11, 2003
  33. Apr 24, 2003
  34. Aug 27, 2002
    • moore's avatar
      · bf84be07
      moore authored
      On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved.
      They now go through a table -- effectively a new space in the core file.
      Function references are resolved lazily, data references are resolved on startup
      and when a .so is loaded.  The end result is that cores can be dumped that
      contain references to symbols in shared libraries.  Also, the dependence of the core on addresses in the Lisp runtime is broken.
      
      The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C
      runtime.  Several foreign symbols are now Lisp static symbols, so a cross
      compile is required whether or not the new stuff is used.  I've checked in
      boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:)  Seriously, lets start
      a discussion on standardizing "cross compilation," not to mention the general
      build procedure.
      bf84be07
  35. Mar 04, 2001
  36. Nov 15, 2000
  37. Nov 06, 2000
Loading