Speaking simply, there are three typical reason (although not complete) that a program will cause this type of violation error. DSD is probably trying to do or gain access to the following:
A. Another program's memory spaces without proper permissions.
B. Data that is past the end of a block of data. This may or may not cause the error depending on what's using the memory at the time.
C. It may be trying to call a string function and passing that function a pointer to a memory address that hasn't been initialized or contains zero/nothing.
DSD is not playing well with something. As a cursory "debugging" procedure, try shutting down all other programs that may be running and killing all non-essential processes immediately after boot. Then try running DSD and see if you still get the violation.