$ >output/source.txt
$ ~/scons/bin/scons --dry-run --debug=duplicate --taskmastertrace=trace.txt -f SConstruct.error
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
dup: no src for output/source.txt, unlinking old variant copy
scons: building associated VariantDir targets: output
scons: *** [output/target.txt] Source `output/source.txt' not found, needed by target `output/target.txt'.
scons: building terminated because of errors.
$ more trace.txt
Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node <no_state 0 'output'> and its children:
Taskmaster: <no_state 0 'output/source.txt'>
Taskmaster: <no_state 0 'output/target.txt'>
Taskmaster: adjusted ref count: <pending 1 'output'>, child 'output/source.txt'
Taskmaster: adjusted ref count: <pending 2 'output'>, child 'output/target.txt'
Taskmaster: Considering node <no_state 0 'output/source.txt'> and its children:
Taskmaster: Evaluating <pending 0 'output/source.txt'>
Task.make_ready_current(): node <pending 0 'output/source.txt'>
Task.prepare(): node <up_to_date 0 'output/source.txt'>
Task.executed_with_callbacks(): node <up_to_date 0 'output/source.txt'>
Task.postprocess(): node <up_to_date 0 'output/source.txt'>
Task.postprocess(): removing <up_to_date 0 'output/source.txt'>
Task.postprocess(): adjusted parent ref count <pending 1 'output'>
Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node <no_state 0 'output/target.txt'> and its children:
Taskmaster: <up_to_date 0 'output/source.txt'>
Taskmaster: <no_state 0 '/bin/cp'>
Taskmaster: adjusted ref count: <pending 1 'output/target.txt'>, child '/bin/cp'
Taskmaster: Considering node <no_state 0 '/bin/cp'> and its children:
Taskmaster: Evaluating <pending 0 '/bin/cp'>
Task.make_ready_current(): node <pending 0 '/bin/cp'>
Task.prepare(): node <up_to_date 0 '/bin/cp'>
Task.executed_with_callbacks(): node <up_to_date 0 '/bin/cp'>
Task.postprocess(): node <up_to_date 0 '/bin/cp'>
Task.postprocess(): removing <up_to_date 0 '/bin/cp'>
Task.postprocess(): adjusted parent ref count <pending 0 'output/target.txt'>
Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node <pending 0 'output/target.txt'> and its children:
Taskmaster: <up_to_date 0 'output/source.txt'>
Taskmaster: <up_to_date 0 '/bin/cp'>
Taskmaster: Evaluating <pending 0 'output/target.txt'>
Task.make_ready_current(): node <pending 0 'output/target.txt'>
Task.prepare(): node <executing 0 'output/target.txt'>
Task.failed_stop(): node <executing 0 'output/target.txt'>
Taskmaster: removing node <executing 0 'output/target.txt'> from the pending children set
Taskmaster: removing parent <pending 0 'output'> from the pending children set
Task.postprocess(): node <failed 0 'output/target.txt'>
Taskmaster: Looking for a node to evaluate
Taskmaster: removing node <no_state 0 '.'> from the pending children set
Taskmaster: No candidate anymore.