ViewVC logotype

Log of /src/lisp/breakpoint.c

Parent Directory Parent Directory | Revision Log Revision Log

Links to HEAD: (view) (annotate)
Links to label-2009-03-25: (view) (annotate)
Sticky Tag:

Revision 1.26 - (view) (annotate) - [select for diffs]
Fri Sep 12 21:09:07 2008 UTC (5 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_19f, RELEASE_20a, RELEASE_20b, amd64-dd-start, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, intl-2-branch-base, intl-branch-2010-03-18-1300, intl-branch-base, intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, post-merge-intl-branch, pre-merge-intl-branch, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, release-20b-pre1, release-20b-pre2, snapshot-2008-10, snapshot-2008-11, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, snapshot-2010-04, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, RELEASE-20B-BRANCH, amd64-dd-branch, cross-sol-x86-branch, cross-sparc-branch, intl-2-branch, intl-branch, portable-clx-branch, sparc-tramp-assem-branch, sse2-branch, sse2-packed-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.25: +16 -6 lines
Diff to previous 1.25
o Generate values for REAL_LRA_SLOT, KNOWN_RETURN_P_SLOT, and
  BOGUS_LRA_CONSTANTS from the actual Lisp values.

o Use the generated values above, if available.  We leave suitable
  defaults for now, but they should probably be removed.

Revision 1.25 - (view) (annotate) - [select for diffs]
Wed Sep 10 13:46:43 2008 UTC (5 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.24: +41 -48 lines
Diff to previous 1.24
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.

o Don't need lisp::*gc-inhibit* to be a static symbol anymore so
  remove it.

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.

Revision 1.24 - (view) (annotate) - [select for diffs]
Fri Sep 5 22:03:12 2008 UTC (5 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.23: +16 -3 lines
Diff to previous 1.23
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.)

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.

Revision 1.23 - (view) (annotate) - [select for diffs]
Fri Sep 5 13:12:03 2008 UTC (5 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.22: +2 -11 lines
Diff to previous 1.22
New compute_offset is working on Solaris with Sun C now.  Enable it.

Revision 1.22 - (view) (annotate) - [select for diffs]
Fri Sep 5 02:54:43 2008 UTC (5 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21
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.

Revision 1.21 - (view) (annotate) - [select for diffs]
Thu Sep 4 22:31:47 2008 UTC (5 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.20: +90 -1 lines
Diff to previous 1.20
A fix for the error that causes di::handle-breakpoint to complain
about an unknown breakpoint at offset 0 when handling a function-end

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.

Revision 1.20 - (view) (annotate) - [select for diffs]
Fri Jul 6 08:04:39 2007 UTC (6 years, 9 months ago) by cshapiro
Branch: MAIN
CVS Tags: pre-telent-clx, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, unicode-utf16-base, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09
Branch point for: release-19e-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.19: +3 -3 lines
Diff to previous 1.19
Import x86 Darwin port.

Revision 1.19 - (view) (annotate) - [select for diffs]
Mon Jan 1 11:53:02 2007 UTC (7 years, 3 months ago) by cshapiro
Branch: MAIN
CVS Tags: snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07
Changes since 1.18: +1 -9 lines
Diff to previous 1.18
Remove old-style signals code and make our POSIX_SIGS behavior the default.

Revision 1.18 - (view) (annotate) - [select for diffs]
Thu Sep 15 18:26:51 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, release-19c, release-19c-base, release-19c-pre1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19c-branch, release-19d-branch
Changes since 1.17: +98 -96 lines
Diff to previous 1.17
Indent all source files using GNU indent using the config in

Revision 1.17 - (view) (annotate) - [select for diffs]
Sat Mar 19 16:02:40 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: release-19b-base, release-19b-pre1, release-19b-pre2, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09
Branch point for: release-19b-branch
Changes since 1.16: +3 -3 lines
Diff to previous 1.16
Clean up #ifdef.

Revision 1.16 - (view) (annotate) - [select for diffs]
Fri Mar 18 05:30:50 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
Changes since 1.15: +16 -3 lines
Diff to previous 1.15
Port Helmut's trace/known-return to ppc.  Fix some bugs along the way
as well.

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.

o Actually implement the function-end breakpoint template.  Basically
  copied the sparc version, with appropriate mods.

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
o The trap_AfterBreakpoint case in sigill_handler was inserting the
  wrong instruction back.  (Probably too much copying of the sparc

Revision 1.15 - (view) (annotate) - [select for diffs]
Thu Mar 17 23:13:55 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
Changes since 1.14: +74 -12 lines
Diff to previous 1.14
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.

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.

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.

Revision 1.14 - (view) (annotate) - [select for diffs]
Mon Jul 12 23:44:07 2004 UTC (9 years, 9 months ago) by pmai
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02, snapshot-2005-03
Branch point for: ppc_gencgc_branch
Changes since 1.13: +2 -2 lines
Diff to previous 1.13
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.

Revision 1.13 - (view) (annotate) - [select for diffs]
Wed Jul 7 15:03:11 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: prm-before-macosx-merge-tag
Changes since 1.12: +10 -10 lines
Diff to previous 1.12
Changes from Robert Swindells to support NetBSD.

Revision 1.12 - (view) (annotate) - [select for diffs]
Fri Oct 27 19:25:54 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE, UNICODE-BASE, amd64-merge-start, cold-pcl-base, dynamic-extent-base, lisp-executable-base, mod-arith-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, remove_negative_zero_not_zero, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, sparc_gencgc, sparc_gencgc_merge
Branch point for: UNICODE-BRANCH, cold-pcl, dynamic-extent, lisp-executable, mod-arith-branch, release-18e-branch, release-19a-branch, sparc_gencgc_branch
Changes since 1.11: +6 -3 lines
Diff to previous 1.11
Cleanup compiler warnings.

Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Sep 5 08:51:51 2000 UTC (13 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.10: +17 -10 lines
Diff to previous 1.10
Minor source cleanups.

Revision 1.10 - (view) (annotate) - [select for diffs]
Wed Apr 12 17:31:19 2000 UTC (14 years ago) by pw
Branch: MAIN
Changes since 1.9: +9 -3 lines
Diff to previous 1.9
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.

Revision 1.9 - (view) (annotate) - [select for diffs]
Sun Jan 25 05:58:55 1998 UTC (16 years, 2 months ago) by dtc
Branch: MAIN
Changes since 1.8: +21 -5 lines
Diff to previous 1.8
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.

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Jan 16 16:05:04 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.7: +33 -21 lines
Diff to previous 1.7
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.

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Nov 25 15:53:30 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.6: +45 -6 lines
Diff to previous 1.6
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.

Revision 1.6 - (view) (annotate) - [select for diffs]
Thu Oct 27 17:13:54 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.5: +9 -0 lines
Diff to previous 1.5
Add RCS header.

Revision 1.5 - (view) (annotate) - [select for diffs]
Mon Oct 24 20:01:46 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.4: +1 -0 lines
Diff to previous 1.4
Solaris patch.

Revision 1.4 - (view) (annotate) - [select for diffs]
Mon Jul 18 18:41:47 1994 UTC (19 years, 9 months ago) by hallgren
Branch: MAIN
Changes since 1.3: +1 -1 lines
Diff to previous 1.3
Don't call undo_foreign_function_call in breakpoint_do_displaced_inst
under hpux.

Revision 1.3 - (view) (annotate) - [select for diffs]
Mon Nov 8 00:07:11 1993 UTC (20 years, 5 months ago) by wlott
Branch: MAIN
Branch point for: solaris_patch
Changes since 1.2: +9 -2 lines
Diff to previous 1.2
HP breakpoint support.

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Aug 19 02:46:58 1992 UTC (21 years, 8 months ago) by wlott
Branch: MAIN
Changes since 1.1: +39 -24 lines
Diff to previous 1.1
Fixed to work.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Jul 28 20:14:13 1992 UTC (21 years, 8 months ago) by wlott
Branch: MAIN
Initial revision

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5