As has been noted before in the lore of BizTalk, it sure would be useful to use a real debugger with orchestrations - at least occasionally.
There are times when an expression shape winds up getting a bit sticky (not that I would know...) and a debugger would be just the ticket. Other times, the exception you are getting from the orchestration engine isn't at all clear.
Still other times, seeing the actual contents of messages or context as you step through would be interesting.
Jon has posted on debugging orchestrations (in IL) with an ILDASM/ILASM loop, and had also discussed building your orchestration assemblies manually (using xsharpp.exe). (He correctly noted these approaches wouldn't generate anything supportable, but they work for spelunking.)
I wanted to suggest something a bit different - I wanted to go back instead to the venerable BTS File Dump utility that Charles released in May of 2004 (before the GenerateCSFiles registry key was discovered...) and propose a different technique for symbolic debugging.
First, install Charles' BizTalk File Dump utility - you can download it from here. Fire it up, and change the output path in the utility to something easy, like c:\temp\BTSFileDump.
Here is the Edit/Debug cycle...(Start by making sure the file dump utility is running, and click the "Start dumping files" button.)
Note that this technique will work in a production setting. You could copy the PDBs and sources to the production server, and use DbgClr.exe (in the Framework SDK) or cordbg.exe to attach to the appropriate host process.
Happy debugging...
Scott Colestock lives, writes, and works as an independent consultant in the Twin Cities (Minneapolis, Minnesota) area.