Краткое описание: Множество существующих кодов, которые отлично работают на многих платформах под gcc 4.1, aCC, VisualAge и MSVC. В настоящее время я работаю над тем, чтобы сделать это для нюхания на HP-UX.Статические/глобальные конструкторы на GCC 4.1/HP-UX 11.23
Выход состоит из нескольких (8-10) разделяемых библиотек.
Все компилируется нормально, но при попытке запуска любых тестовых приложений они сразу же segfault в каком-то глобальном конструкторе. Фактически, gdb не может даже получить информацию о том, где находится этот фактический глобальный объект. Si_code - SEGV_ACCERR - Недействительные разрешения для объекта, а указатель 'this' всегда 0
Как это инициализация вызывает ctor объекта, который является нулевым? Является ли это конфликтом между понятием gcc глобальной инициализации и понятием HP (используя HP ld)?
Где будет вы отсюда с точки зрения диагностики? К сожалению, я не могу уменьшить эту проблему до любого типа тестового примера, который воспроизводит проблему.
Бит обновления: По прихоти, я добавил printf в ctor, который был неудачным (он был ранее пуст). Когда в следующий раз я попробовал пример приложения, он разбился на DIFFERENT глобальный конструктор ... так что я повторил и то же самое произошло. Возможно ли, что что-то оптимизирует пустые конструкторы? Это не кажется логичным, но это * * HP-UX – phrakture