Я получаю это сообщение об ошибке много раз при попытке выполнить objdump моего исполняемого файла или общей библиотеки, скомпилированной в AIX 5.3. Для любого другого исполняемого файла на этой машине он работает нормально.
Этот исполняемый файл также аварийно завершает работу во время выполнения (при назначении строки).
Я не уверен, имеет ли это значение, но во время связи у меня есть несколько предупреждений, таких как:
ld: 0711-224 ВНИМАНИЕ: Дубликат символа: не виртуальный преобразователь в XYZ :: ~ XYZ ()
Весь исполняемый файл создается непосредственно из файлов .o (и одной внешней библиотеки, но я уверен, что все в порядке).
Что-то подсказывает мне, что это может быть связано со слабыми символами, но я понятия не имею, как решить эту проблему.
Любая идея, что может быть не так или что еще я могу проверить, чтобы продолжить это?
Я также попытался включить все файлы cpp в один большой файл и затем скомпилировать это. Я все еще получаю ошибку сегментации, но в другом месте (теперь в g_strXXXXX.erase () - стирание глобальной строки).
Часть трассировки стека выглядит так:
(...)
. # 3 0x101d8534 в __static_initialization_and_destruction_0 (int, int) (__initialize_p = 1, __priority = 65535) в ../../licserver/someclass1.cpp:4
. # 4 0x101d8df0 в GLOBAL _I_fc_softc () в ../../shared/someclass1.cpp:225
. # 5 0x103c81fc в GLOBAL _FI_licserver_unittest ()
. # 6 0xd03aadb0 в mod_init1 () из /usr/lib/libc.a(shr.o)
. # 7 0xd03aacc4 в __modinit () из /usr/lib/libc.a(shr.o)
. # 8 0x100001d4 в __start ()
(gdb) GLOBAL _I_fc_softc
Так выглядит какая-то проблема с libc или libstdc ++?