1. clarification: the command 'watch *(char*)0x65476 == 0' puts a hardware watch-point for a single byte at the given address. if you want to find a change to an item with a different size (e.g. 4 bytes), use a different cast: 'watch *(int*)0x65476 == 0'
2. regarding the 'x' command and endianess: you can control the assumed-endianness of gdb using 'set endian big', or 'set endian little' (the default is 'auto'). use 'show endian' to see the current value of this setting. 3. regarding watch points: you can use 'rwatch <expression>' to be notified whenever the value of this expression is _read_, so you can find when someone access a certain memory area (for example). 4. in general 'help <cmd>' or 'help <cmd subcmd....>' gives help about this command. 5. regarding checkpoints and fork on windows - indeed it looks like cygwin's fork copies all the memory to the new process - which means that its a very expensive system call. thus, if your process has a very large footprint, or you try to make too many checkpoints - you'll hit swapping or the virtual memory limitation of your machine. 6. regarding re-creating a live process from a core file - some people already thought about this (as usual). here is an example (i didn't try this yet): http://www.geocities.com/asimshankar/checkpointing/ i think there was something else we wanted an answer for - does anyone remember? --guy _______________________________________________ Haifux mailing list Haifux@haifux.org http://hamakor.org.il/cgi-bin/mailman/listinfo/haifux