Subject: bug#3021: 23.0.92; MEM FULL on Windows after some VC operations

From: Jason Rumney <[email-masked]>
Date: Mon, 06 Jul 2009 00:02:07 +0800

Reiner Steib wrote:

> - What do I need to install to debug a MinGW/MSYS build (Jason's
>   build) on MS Vista?
>   
gdb (from www.mingw.org)

> - To put a breakpoint, of course I need to install the Emacs sources.
>   How do I have to combine the source (emacs-*.tar.gz) and the binary
>   (windows/emacs-*-bin-i386.zip) correctly?
>   

Unzipping into the same directory should work - any files contained in 
both are identical, so no harm will come from replacing, or conversely 
from keeping the old ones.

> - Jason suggested: "find the location where that message is emitted,
>   and put a breakpoint there"...
>
>   Can someone assist me with this?  I'm not familiar with Emacs' C
>   code. From rgrep on 'MEM.FULL\|memory_full' it's not obvious for me
>   which would be the right function.
>   
So put a breakpoint on all locations that rgrep shows that message occuring.

To run gdb, follow the directions in etc/DEBUG and nt/INSTALL, notably:

Start Emacs from the src directory as: gdb ../bin/emacs.exe
This helps gdb find the source files, and also it will automatically 
include the extra functions in src/.gdbinit for inspecting lisp 
structures and other Emacs specific things.

To set a break point in gdb, type one of the following:

break functionname
break filename:linenum

to run emacs until a breakpoint is hit, type

run

this is the point to pass arguments to Emacs (not when starting gdb, or 
they will be interpreted as gdb arguments). So to run without init files

run -Q

You can also run gdb from inside Emacs, in which case setting 
breakpoints is easier - go to the line where you want the breakpoint in 
the source file's buffer, and press C-x SPC.  But I have found gdb to be 
unstable within Emacs under Windows, YMMV.