Index: winsup/utils/utils.sgml =================================================================== RCS file: /cvs/uberbaum/winsup/utils/utils.sgml,v retrieving revision 1.25 diff -u -p -2 -r1.25 utils.sgml --- winsup/utils/utils.sgml 7 Jun 2002 19:25:26 -0000 1.25 +++ winsup/utils/utils.sgml 12 Jun 2002 10:58:50 -0000 @@ -766,4 +766,50 @@ print the message but does return the no +dumper + + +Usage: dumper [OPTION] FILENAME WIN32PID +Dump core from WIN32PID to FILENAME.core + -d, --verbose be verbose while dumping + -h, --help output help information and exit + -q, --quiet be quiet while dumping (default) + -v, --version output version information and exit + + +The dumper utility can be used to create +core dump of running windows process. This core dump can be later loaded +to gdb an analyzed. One common way to use dumper is to +plug it into cygwin's Just-In-Time debugging facility by adding + + +error_start=x:\path\to\dumper.exe + + +to CYGWIN environment variable. Please note that +x:\path\to\dumper.exe is win32-style and not cygwin +path. If error_start is set this way, then dumper will +be started whenever some program encounters fatal error. + + + +dumper can be also be started from command line to create +core dump of any running process. Unfortunately, because of windows API +limitation, when core dump is created and dumper exits, +the target process is terminated too. + + + +To save the space in core dump, dumper doesn't write those +portions of target process' memory space that are loaded from executable and +dll files and are unchangeable, such as program code and debug info. Instead, +dumper saves paths to files which contain that data. When +core dump is loaded into gdb, it uses these paths to load appropriate files. +That means that if you create core dump on one machine and try to debug it on +other, you'll need to place identical copies of executable and dlls in the same +directories as on machine where core dump has been created. + + + +