From: kai.grossjohann@gmx.net (Kai Großjohann)
Subject: Re: How to debug out of memory situation?
Date: Mon, 09 Jun 2003 19:23:07 +0200 [thread overview]
Message-ID: <84y90bmah0.fsf@lucy.is.informatik.uni-duisburg.de> (raw)
In-Reply-To: E19LAnu-0001FC-7s@fencepost.gnu.org
Richard Stallman <rms@gnu.org> writes:
> If you put a breakpoint in memory_full, you will be able to make a
> backtrace. If Emacs is continuing to use memory for a certain purpose
> and ran out while trying to do more of that, you should see within a
> few cases what the pattern is.
I tried this a couple of times but couldn't really find anything.
Now I tried it again and this time, I at least got some backtraces.
They were not so interesting, I'm afraid :-/
Here is the first time it happened: (Search for CCC to find the end
of the gdb output.)
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=48, type=MEM_TYPE_VECTOR) at alloc.c:615
#2 0x0811c590 in allocate_vectorlike (len=10, type=MEM_TYPE_VECTOR)
at alloc.c:2253
#3 0x0811c5e5 in allocate_vector (nslots=10) at alloc.c:2276
#4 0x0811c73e in Fmake_vector (length=10, init=405487172) at alloc.c:2372
#5 0x0811c88e in Fvector (nargs=10, args=0xbfffd8c8) at alloc.c:2437
#6 0x08131016 in Ffuncall (nargs=11, args=0xbfffd8c4) at eval.c:2705
#7 0x0815842c in Fbyte_code (bytestr=942873532, vector=1221889640, maxdepth=16)
at bytecode.c:710
#8 0x08130724 in Feval (form=1489062228) at eval.c:2084
#9 0x0812f57d in Fcondition_case (args=1525038380) at eval.c:1280
#10 0x081588ca in Fbyte_code (bytestr=945883100, vector=1221890072, maxdepth=8)
at bytecode.c:891
#11 0x081315d1 in funcall_lambda (fun=1221890304, nargs=4, arg_vector=0xbfffdc48)
at eval.c:2911
#12 0x08131191 in Ffuncall (nargs=5, args=0xbfffdc44) at eval.c:2781
#13 0x0815842c in Fbyte_code (bytestr=955457068, vector=1223899728, maxdepth=19)
at bytecode.c:710
#14 0x081315d1 in funcall_lambda (fun=1223900240, nargs=2, arg_vector=0xbfffdd34)
at eval.c:2911
#15 0x081312d4 in apply_lambda (fun=1223900240, args=1492329948, eval_flag=1)
at eval.c:2833
#16 0x0813088e in Feval (form=1492329940) at eval.c:2136
#17 0x0812f57d in Fcondition_case (args=1538322764) at eval.c:1280
#18 0x081588ca in Fbyte_code (bytestr=955456908, vector=1223897312, maxdepth=5)
at bytecode.c:891
#19 0x081315d1 in funcall_lambda (fun=1223897552, nargs=0, arg_vector=0xbfffe0a8)
at eval.c:2911
#20 0x08131191 in Ffuncall (nargs=1, args=0xbfffe0a4) at eval.c:2781
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) xbacktrace
"vector"
"byte-code"
"gnus-get-newsgroup-headers-xover"
"gnus-agent-fetch-group-1"
"gnus-agent-fetch-session"
"call-interactively"
CCC
Okay, so the function is gnus-get-newsgroup-headers-xover. I then
continue.
(gdb) cont
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
"expand-file-name"
"apply"
"jka-compr-run-real-handler"
"jka-compr-handler"
"debug"
"byte-code"
"gnus-get-newsgroup-headers-xover"
"gnus-agent-fetch-group-1"
"gnus-agent-fetch-session"
"call-interactively"
CCC
Still gnus-get-newsgroup-headers-xover, it seems. But from now on,
it gets less interesting really fast. (No more text until end of
this message -- just gdb output.)
I really feel I'm fishing in muddy waters and I have no idea what I
can do. There are probably ways to find out more, but I don't know
them.
Help?
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
"format"
"byte-code"
"gnus-agent-fetch-session"
"call-interactively"
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
(gdb) xbacktrace
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) xbacktrace
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) xbacktrace
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) where
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) wh
wh whatis where while while-stepping
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) c
Continuing.
Breakpoint 3, memory_full () at alloc.c:464
464 bytes_used_when_full = BYTES_USED;
(gdb) bt
#0 memory_full () at alloc.c:464
#1 0x0811b3cd in lisp_malloc (nbytes=1012, type=MEM_TYPE_STRING) at alloc.c:615
#2 0x0811b88b in allocate_string () at alloc.c:1321
#3 0x0811c0dd in make_uninit_multibyte_string (nchars=9, nbytes=9)
at alloc.c:1895
#4 0x0811c0ab in make_uninit_string (length=9) at alloc.c:1876
#5 0x0811bf50 in make_unibyte_string (contents=0x8184da0 "emergency", length=9)
at alloc.c:1790
#6 0x0811bf22 in make_string (contents=0x8184da0 "emergency", nbytes=9)
at alloc.c:1775
#7 0x081461bf in intern (str=0x8184da0 "emergency") at lread.c:3092
#8 0x0811b0b3 in display_malloc_warning () at alloc.c:441
#9 0x080d9fb5 in command_loop_1 () at keyboard.c:1443
#10 0x0812f66d in internal_condition_case (bfun=0x80d9e00 <command_loop_1>,
handlers=405583908, hfun=0x80d9a04 <cmd_error>) at eval.c:1333
#11 0x080d9cc8 in command_loop_2 () at keyboard.c:1292
#12 0x0812f1e5 in internal_catch (tag=405545156,
func=0x80d9ca4 <command_loop_2>, arg=405487172) at eval.c:1094
#13 0x080d9c73 in command_loop () at keyboard.c:1271
#14 0x080d97c8 in recursive_edit_1 () at keyboard.c:987
#15 0x080d98f0 in Frecursive_edit () at keyboard.c:1043
#16 0x080d8773 in main (argc=3, argv=0xbfffe824) at emacs.c:1666
(gdb) xbacktrace
(gdb) xbacktrace
--
This line is not blank.
next prev parent reply other threads:[~2003-06-09 17:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-27 15:06 How to debug out of memory situation? Kai Großjohann
2003-05-28 23:57 ` Richard Stallman
2003-06-09 17:23 ` Kai Großjohann [this message]
2003-06-15 15:59 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=84y90bmah0.fsf@lucy.is.informatik.uni-duisburg.de \
--to=kai.grossjohann@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.