emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: emacs hangs; 100% cpu usage


From: Daniel Schmitt
Subject: Re: emacs hangs; 100% cpu usage
Date: Tue, 18 Jan 2005 18:41:36 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.5) Gecko/20040915

Kim F. Storm wrote:
address@hidden writes:


Could you try the suggestions in etc/DEBUG for infinite loops?

Following the procedure described in etc/DEBUG I got the following:
(gdb) finish
Run till exit from #0 0x000000000055339c in sweep_weak_table (h=0xf29680, remove_entries_p=0) at fns.c:4792


Does the following patch fix the infinite loop ?
Using your patch hangs seem less often but they occur nonetheless :-(

Using the method discribed in etc/DEBUG, I got the following

-----------------------------DEBUG-START----------------------------------
(gdb) r
Starting program: /import/Archive/Groups/Productivity/Editors/Emacs/emacs/cvs-HE
AD/x86_64/src/emacs -geometry 80x40+0+0
[Thread debugging using libthread_db enabled]
[New Thread 182940272320 (LWP 5470)]
Detaching after fork from child process 5473.
Detaching after fork from child process 5475.
Detaching after fork from child process 5476.
Detaching after fork from child process 6029.

Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 182940272320 (LWP 5470)]
sweep_weak_table (h=0x1123d60, remove_entries_p=0)
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4799
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb) finish
Run till exit from #0  sweep_weak_table (h=0x1123d60, remove_entries_p=0)
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4799

Program received signal SIGTSTP, Stopped (user).
sweep_weak_table (h=0x1123d60, remove_entries_p=0)
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4799
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb) next
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb) finish
Run till exit from #0  sweep_weak_table (h=0x1123d60, remove_entries_p=0)
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4792
0x00000000005536bf in sweep_weak_hash_tables ()
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4892
4892                marked |= sweep_weak_table (h, 0);
Value returned is $1 = 1
(gdb) finish
Run till exit from #0  0x00000000005536bf in sweep_weak_hash_tables ()
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4892

Program received signal SIGTSTP, Stopped (user).
0x00000000005535dc in sweep_weak_table (h=0x1123d60, remove_entries_p=0)
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4792
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb) next

Program received signal SIGTSTP, Stopped (user).
0x00000000005535dc in sweep_weak_table (h=0x1123d60, remove_entries_p=0)
    at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/fns.c:4792
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb) next
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb) next
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4798          prev = Qnil;
(gdb)
4799          for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
(gdb)
4792      for (bucket = 0; bucket < n; ++bucket)
(gdb)
-----------------------------DEBUG-END----------------------------------

Hope that helps!

Best regards,

Daniel Schmitt





reply via email to

[Prev in Thread] Current Thread [Next in Thread]