На этом типе и валится:
terminate called after throwing an instance of 'mqtt::exception'
what(): std::exception
Но сейчас вставлю в функцию throw, посмотрим.
upd: все то же самое.
Был в похожей ситуевине (вот валится на любом испускании), методом втыка нашел что помогает выключить "dead strip code" (ну это в терминах Xcode, как в mingw не в курсе). Т.е. просто баг компилятора (точнее линкера).
Конечно шансов что у Вас то же самое очень мало. Самое мерзкое в этих исключениях - что разобраться "логически" (не побоюсь этого слова
) - просто не видно как. Отладчик или вообще потерял стек или наводит на какие-то исходники куда Макар телят не гонял. Такие залеты отливаются в неск дней "плясок с бубном", и приходят соображения типа "та ну его нафиг, пусть будет менее стройно зато с отладкой без проблем".