Here's a tip that might get you a core file usuable for gdb:

  In your cygwin.bat add the error_start directive to the CYGWIN environment variable
  set CYGWIN=error_start=c:\cygwin\bin\dumper.exe

  Core files produced by dumper can be somewhat messy and unreliable in cygwin
  because processes are run as child threads.

  Even better, unless you're running unattended of course, you can have gdb automatically
  start up and attach itself when you crash.
  set CYGWIN=error_start=c:\cygwin\bin\gdb.exe