Interruptions, though, are tricky business. If you haven't completed your printf's, then you don't check off the next action and you don't create a new one. Though, you might change the next action to "finish putting printf's in file x", but only if there is a chance that you'll forget that you've already started.
If you've completed the next action and are well on to other things when the interruption comes, then you should mark the "printf" action complete and write down the new next action (for example, "run regression tests on component x").
Not to derail the conversation, but your "todo" file worries me a little bit. Is this a list of your projects, or your next actions? I sense some ambiguity here, but maybe it's just a matter of terminology. If you've got your projects and their next actions comingled, you really should consider separating them... even if that just means putting headers or page breaks between them.
That said, I suggest you keep a separate daily log of things you've done (for purposes of reporting to management). Management is likely to want information at an entirely different level from the way you'll need to structure things in GTD.
In my experience, GTD is fabulous for keeping my work on-track; not so great for status reporting. It's far too granular, and the next actions really only represent what I need to do after each time I stop -- it's not a complete list of everything I've done, nor even the "important" things I've done.
Hope this helps.