O que fazer, se o comportamento de depuração for diferente da execução normal?

Eu tenho um problema com as sessões de depuração. Meu programa executa muito bem em uma sessão de depuração, mas se eu iniciar uma execução normal, ele se comportará de maneira completamente diferente.
O problema é que não posso dizer por que ele age de maneira diferente.

Uma razão possível é o tempo de execução mais lento porque você sempre tem que pressionarF6 ou então.
Eu tentei inserirThread.sleep(1000); mas eu não entendo a instrução causando o comportamento diferente.

Então: quais são as dicas, melhores práticas para saber por que ele age de forma diferente nas sessões de depuração?

questionAnswers(7)

yourAnswerToTheQuestion