CよりJavaのほうがデバッグが楽でいい。
スタックトレース読めば90%のバグの原因究明作業は終了。

デッドロック関係なら、デバッグモードで起動して、
JDBからアタッチしてスタックトレース全出力で、原因究明は終了。

これで残るバグは、メモリーリークやハンドルリークの問題だけ。