Для винды, чтобы узнать, шде произошло исключение, нужно:
1. Компилировать в режиме отладки
2. После выброса исключения создавать мини-дамп, который потом можно открыть с помощью windbg
Но у этого спомоба есть недостатки:
1. Если исключение произошло в библиотеке, то он скажет ту функцию, в которой произошло исключение, но не скажет, откуда эта функция была вызвана.
2. Если использовать qt, то придёться тащить с собоё пару сотен мигабайт длл библиотек, вместо пары десятков, ибо длл для отладки весят где-то в десять раз больше