Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Sync to snapshot 2008-11. But we didn't sync code/extfmts.lisp or iso8859-1.lisp and utf-8.lisp. (I don't think we want those changes, yet.)
Sync to snapshot 2008-11.
new-genesis.lisp: o Generate values for REAL_LRA_SLOT, KNOWN_RETURN_P_SLOT, and BOGUS_LRA_CONSTANTS from the actual Lisp values. breakpoint.c: o Use the generated values above, if available. We leave suitable defaults for now, but they should probably be removed.
Change how we handle function end breakpoints for non-x86. We don't disable GC before calling HANDLE-BREAKPOINT. We save the real LRA object to the Lisp stack, before calling HANDLE-BREAKPOINT. Afterwards, we load the LRA from the stack. Thus, if GC happened, the stack value will have changed appropriately, and we return to the correct place. compiler/ppc/parms.lisp: compiler/sparc/parms.lisp: o Don't need lisp::*gc-inhibit* to be a static symbol anymore so remove it. lisp/breakpoint.c: o Implement above idea in handle_function_end_breakpoint. o Add comments on the values of REAL_LRA_SLOT and friends. o Clean up compute_offsets for the x86 case which doesn't handle ppc or sparc anymore.
compiler/ppc/parms.lisp: compiler/sparc/parms.lisp: o Add lisp::*gc-inhibit* to list of static symbols. (No cross-compile needed because we used one of the spare static symbols. Full cycle of builds needed to progate the changes.) lisp/breakpoint.c: o Disable GC when calling HANDLE-BREAKPOINT. This is a temporary workaround to the issue where a GC occurring during HANDLE-BREAKPOINT can cause a segfault during tracing. GC moves the code object and/or bogus lra such that we don't know where we should return to.
New compute_offset is working on Solaris with Sun C now. Enable it.
Use new compute_offset for ppc too. Fixes the same unknown breakpoint at offset 0 error that happens on sparc. Still has the same segfault problem that sparc has.
A fix for the error that causes di::handle-breakpoint to complain about an unknown breakpoint at offset 0 when handling a function-end breakpoint. See the comment for compute_offset for an explanation. Note that this seems to fix that issue, but there is still the issue where a segfault will happen during tracing. It seems to happen if a GC occurs after the function end breakpoint has happened (compute_offset has already been called before GC happens), and trace has printed out the return value. Then a segfault happens. Due to some issues, this fix only works when compiled with gcc. Compiling with Sun c produces some segfaults somewhere such that we can't build cmucl at all. The bizarre part is that compute_offset is never called during a build because there are no breakpoints enabled during a normal build.
Import x86 Darwin port.
Remove old-style signals code and make our POSIX_SIGS behavior the default.
Merge code from main branch of 2005-12-17 to ppc gencgc branch. Still doesn't work of course.
Indent all source files using GNU indent using the config in .indent.pro.
Merge snapshot-2005-05 to this branch.
Clean up #ifdef.
Port Helmut's trace/known-return to ppc. Fix some bugs along the way as well. lisp/breakpoint.c: o Enable function-end stuff in compute_offset for DARWIN too. o Lots of printf's so we can see what's happening on ppc since gdb is majorly broken there. lisp/ppc-assem.S: o Actually implement the function-end breakpoint template. Basically copied the sparc version, with appropriate mods. lisp/ppc-arch.c: o Add TWLLEI_R0 macro to create the appropriate trap instructions that we need, and use as appropriate. o arch_install_breakpoint was actually broken and installed a twllgei instruction instead of twllei. o arch_do_displaced_inst was also broken. It didn't install the after-break-point trap after the breakpoint trap. And it also didn't continue running the code and returned instead. That's wrong. o The trap_AfterBreakpoint case in sigill_handler was inserting the wrong instruction back. (Probably too much copying of the sparc port.)
Implement tracing for the known-return convention. This is basically 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.
Finish conversion from hardcoded sigcontext to os_context_t, as initiated by the commit of the NetBSD support, and needed by the upcoming merge of the OS X/Darwin port.
Changes from Robert Swindells to support NetBSD.
Fred Gilham's Lisp executable support for CMUCL.
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation for release tagging 18d.
Cleanup compiler warnings.
Minor source cleanups.
This set of revisions brings the RELENG_18 branch up to HEAD in preparation for an 18c release.
From Tim Moore; FreeBSD 4.x has new sigcontext code which can be accessed via the POSIX_SIGS conditional. Change the way SA_SIGINFO gets passed to sigaction. It is turned off for FreeBSD and Linux.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Fix recently introduced bugs in the breakpoint handling on non-x86 ports; fake_foreign_function_call must be called before sap_alloc on the non-x86 port so that current_dynamic_space_free_pointer is setup from reg_ALLOC.
For the x86 port store the return code component and the PC offset in bogus LRA code objects rather than a SAP to avoid lossage if the real code object is moved while the real return address has been moved off the stack.
Breakpoint and single stepping support for the x86 port. This has been tested in the experimental code and works on both FreeBSD and Linux. Plus a few improvements to the interrupt safety for the x86 port.
Add RCS header.
Don't call undo_foreign_function_call in breakpoint_do_displaced_inst under hpux.
HP breakpoint support.
Fixed to work.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|