>
>Хотелось бы понять почему так происходит и как это исправить? 1. Скорее всего ошибка не связана с malloc, т.к. на всех остальных миллионах компьютеров malloc работает нормально.
2. Скорее всего ошибка не связана с libpq++, т.к. валится все-таки в malloc.
Вывод - кто-то портит память, malloc работает с уже запорченной кучей. Маловероятно что это из-за оптимизации компилятора. Просто в случае -O2 _последствия_ получаются несколько иными (из-за иной раскладки страниц кода и данных) и в данном месте нет падения.
Ищите кто кучу портит.