changeset 71109:8e0e27268c74

(select_wrapper): Add wrapper around select to work around "incomplete backtrace" bug in gdb 5.3, when emacs is stopped inside select called from wait_reading_process_output.
author Kim F. Storm <storm@cua.dk>
date Wed, 31 May 2006 08:58:02 +0000
parents b44a459ae79e
children 37975f598c83
files src/process.c
diffstat 1 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Wed May 31 08:56:54 2006 +0000
+++ b/src/process.c	Wed May 31 08:58:02 2006 +0000
@@ -4135,6 +4135,25 @@
 {
 }
 
+/* Use a wrapper around select to work around a bug in gdb 5.3.
+   Normally, the wrapper is optimzed away by inlining.
+
+   If emacs is stopped inside select, the gdb backtrace doesn't
+   show the function which called select, so it is practically
+   impossible to step through wait_reading_process_output.  */
+
+#ifndef select
+static INLINE int
+select_wrapper (n, rfd, wfd, xfd, tmo)
+  int n;
+  SELECT_TYPE *rfd, *wfd, *xfd;
+  EMACS_TIME *tmo;
+{
+  return select (n, rfd, wfd, xfd, tmo);
+}
+#define select select_wrapper
+#endif
+
 /* Read and dispose of subprocess output while waiting for timeout to
    elapse and/or keyboard input to be available.