An answer from Oleg is below - don't know if it helps.
I really don't need this working, so don't spend any time on this on my account. (I tried MingW UPP installation on my work PC today and GDB crashed if I had a breakpoint, but still it was useful and must be the easiest way to start using GCC/MingW/GDB !)
Graeme
<quote from Oleg on microsoft.public.vsnet.debugging>
One situation when it can happen is when symbols for some modules are loaded
as deferred (SYMOPT_DEFERRED_LOADS option is set). Then an attempt
to search for nonexistent symbol will cause DbgHelp to actually load symbols for
all such modules (spending time on symbol search, potentially with symbol server access).
There are two workarounds:
1) Do not use SYMOPT_DEFERRED_LOADS option
2) Limit the search only to modules whose symbols are already loaded (it is done by
setting SYMOPT_NO_UNQUALIFIED_LOADS option)
Also, of course, the time spent searching for nonexistent symbol depends on the
number of modules to search.