]> git.eshelyaron.com Git - emacs.git/commitdiff
(select_wrapper): Add wrapper around select to work around
authorKim F. Storm <storm@cua.dk>
Wed, 31 May 2006 08:58:02 +0000 (08:58 +0000)
committerKim F. Storm <storm@cua.dk>
Wed, 31 May 2006 08:58:02 +0000 (08:58 +0000)
"incomplete backtrace" bug in gdb 5.3, when emacs is stopped inside
select called from wait_reading_process_output.

src/process.c

index cfc39235c9aa3e617eba4ff28ead6c49ab455a5a..3366a3f1006d1675e1db979496a8aee9fb630ef3 100644 (file)
@@ -4135,6 +4135,25 @@ wait_reading_process_output_1 ()
 {
 }
 
+/* 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.