summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog3
-rw-r--r--src/eval.c15
2 files changed, 12 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index cd109c17f18..7b54b6195a9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
2013-07-11 Paul Eggert <eggert@cs.ucla.edu>
+ * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
+ This is for .gdbinit xbacktrace.
+
* sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
* sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
(emacs_set_tty): Now static.
diff --git a/src/eval.c b/src/eval.c
index d3545add21d..31a774b9d27 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -114,6 +114,13 @@ Lisp_Object Vsignaling_function;
frame is half-initialized. */
Lisp_Object inhibit_lisp_code;
+/* These would ordinarily be static, but they need to be visible to GDB. */
+bool backtrace_p (union specbinding *) EXTERNALLY_VISIBLE;
+Lisp_Object *backtrace_args (union specbinding *) EXTERNALLY_VISIBLE;
+Lisp_Object backtrace_function (union specbinding *) EXTERNALLY_VISIBLE;
+union specbinding *backtrace_next (union specbinding *) EXTERNALLY_VISIBLE;
+union specbinding *backtrace_top (void) EXTERNALLY_VISIBLE;
+
static Lisp_Object funcall_lambda (Lisp_Object, ptrdiff_t, Lisp_Object *);
static Lisp_Object apply_lambda (Lisp_Object fun, Lisp_Object args);
@@ -152,7 +159,7 @@ specpdl_func (union specbinding *pdl)
return pdl->unwind.func;
}
-static Lisp_Object
+Lisp_Object
backtrace_function (union specbinding *pdl)
{
eassert (pdl->kind == SPECPDL_BACKTRACE);
@@ -166,7 +173,7 @@ backtrace_nargs (union specbinding *pdl)
return pdl->bt.nargs;
}
-static Lisp_Object *
+Lisp_Object *
backtrace_args (union specbinding *pdl)
{
eassert (pdl->kind == SPECPDL_BACKTRACE);
@@ -205,10 +212,6 @@ set_backtrace_debug_on_exit (union specbinding *pdl, bool doe)
/* Helper functions to scan the backtrace. */
-bool backtrace_p (union specbinding *) EXTERNALLY_VISIBLE;
-union specbinding *backtrace_top (void) EXTERNALLY_VISIBLE;
-union specbinding *backtrace_next (union specbinding *pdl) EXTERNALLY_VISIBLE;
-
bool
backtrace_p (union specbinding *pdl)
{ return pdl >= specpdl; }