Debugging SMP Code with UML
chromatic writes "It's easy to write code that works fine on single-processor systems but dies horribly on multi-processor boxes. Instead of spending thousands of dollars on a four- or eight-way system, you can use UML to emulate a multi-processor machine."
It's no speed demon, but it's about the nicest free tool for machine-level debugging.