zander has already answered
While I know what kdm is, it looks like you don't know at all.
KDM's binary function is to start X server, then kdm_greet login manager. KDM is a very simple C application and in your case it is kdm_greet which doesn't start.
In your case I'd suggest running kdm this way (from runlevel 3):
kdm -debug 0x185 -nodaemon -error /dev/stdout
or even -debug 0x985