For anyone, like me, who had no idea what reverse debugging was, you can step backwards from a breakpoint/segfault or whatever. http://sources.redhat.com/gdb/news/reversible.html
I don't know if that's true in the latest versions, but it certainly seems like solving that problem in a multi-threaded environment would be difficult.
Edit: this seems to indicate it can be enabled in a threaded program: http://stackoverflow.com/questions/7517236/how-do-i-enable-r... I will have to try it. I guess it's just another case of a badly worded error message "Target multi-thread does not support this command." sure makes it sound like you can't reverse in a multi-threaded program, doesn't it?