При отладке разделяемой библиотеки, загруженной dlopen()
, я нашел интересную вещь. Адрес, возвращаемый функцией crypt()
при вызове из моей библиотеки, основан на 32 битах; то есть, когда я пытаюсь увидеть этот адрес в отладчике. он говорит, что это плохой адрес. Добавляя к этому адресу сдвиг, который в моем случае 0xffffffff00000000
дает правильный результат. Глядя на источники crypt
, понятно, что строка, возвращаемая crypt
, представляет собой статический массив символов, но непонятно, почему адрес основан на 32 битах.Неверный адрес, возвращаемый crypt() на Solaris x64
Спасибо заранее для любых идей и помочь