If you write proper code, there is no need to debug ;-)

For your situation is a singleton just fine. What is the alternative? Passing pointers/references around your application. Well I would say that that makes your code much more unreadable and hard to debug.

And do you really need to subclass QApplication and QHash? Normally one shouldn't subclass Qt basic types line QHash, QMap, QList etc. unless you are really know what you are doing.