<p>When I am single stepping through one thread of a multi threaded program, the debugger gets interrupted with:</p>

<pre><code>0x(some hex ref) : tdb_event_death      : ret
dbx: thread has exited -- next aborted
</code></pre>

<p>My guess is a thread somewhere in the program I am debugging has stopped, but it's not the one I'm debugging so I can't see why I have to restart the debugging process to continue. </p>

<p>I have a work around,  I set a breakpoint on the next line then rerun, which works but is very annoying, it is really slowing down my debugging. Does anyone know a better way ?  (single step ALL threads for example)</p>

Without seeing the input, it is hard to tell what the best approach is.  You are probably going to need to use the RegExp class to parse out your keys and values.  If you can get clean enough paths to the values, you might be able to get away with string.Split() to split the path into arrays of keys and walk the registry using those values.
Does the input set include the type of values, or can you assume that the values already exist in the registry?
A little more information on the input set would be useful.  An example, possibly?