Описание тега dlopen

Функция POSIX для динамической загрузки библиотеки или двоичного файла в память
0 ответов

Динамически загружаемая библиотека и глобальные переменные в C++

Я пытаюсь построить систему, которая использует динамически загружаемые библиотечные файлы (.so файлы) в качестве плагинов в C++14. Я строю проект, используя gcc в сочетании с qt5.5.1 внутри qtcreator.Проблема в том, что я не до конца понимаю, что н…
29 ноя '16 в 00:13
1 ответ

Как обойти кеширование dlopen()?

Согласно его справочной странице, dlopen() не будет загружать одну и ту же библиотеку дважды: Если тот же общий объект загружается снова с помощью dlopen(), возвращается тот же дескриптор объекта. Динамический компоновщик поддерживает количество ссы…
30 авг '17 в 07:51
1 ответ

Как предотвратить сбои в плагине, влияющие на основную программу (dlopen)

Я делаю плагин-систему с 'dlopen' в Linux. Theres центральное приложение, которое передает данные (JSON) между плагинами. Мы можем обрабатывать исключенные исключения, используя предложение try-catch. Мой вопрос об ошибках, которые завершают програм…
08 авг '15 в 14:32
1 ответ

Обнаружить дубликаты символов на dlopen

В моем приложении Linux я использую архитектуру плагинов через dlopen, Общие объекты открываются с dlopen(путь, RTLD_GLOBAL | RTLD_LAZY)` Опция RTLD_GLOBAL необходимо, так как плагинам необходим доступ к общей информации RTTI. Иногда случается, что …
24 янв '12 в 09:49
3 ответа

C - Общая библиотека - dlopen, dlsym

В качестве темы исследования я использую программу на C++ для перевода запроса SQL в программу на C++. После перевода исходный код запроса C++ компилируется в общую библиотеку: g++ -O0 -g3 -fPIC -std=c++0x GeneratedQuery.cpp ../type/Types.cpp -share…
02 янв '14 в 14:14
1 ответ

Как заменить dlopen() в Android Nougat?

У меня есть приложение NDK, которое можно расширить с помощью плагинов, которые загружаются через dlopen, Раньше это работало нормально, но больше не работает с Android N. Как указано в документации для разработчиков, dlopen сейчас официально заброш…
27 янв '17 в 15:45
2 ответа

SIGSEGV, когда P/Invoking dlopen

Я пытаюсь написать абстракцию для загрузки динамических библиотек в Windows и Linux. В то время как на платформе Windows все идет хорошо, я получаю SIGSEGV, когда я звоню dlopen: // File: Main.cs using System; using System.Runtime.InteropServices; n…
31 мар '12 в 09:07
0 ответов

dlopen не удалось, потому что libpymodules.so не найден

Я написал простое приложение с Kivy, когда я запускал его в своем Buildozer, оно работало отлично, но когда я пытаюсь запустить файл Apk, который я создал с помощью buildozer в эмуляторе или смартфоне, все время вылетает. после проверки Logcat я уви…
29 июн '18 в 05:40
0 ответов

Отладка и профилирование загруженного во время выполнения модуля

Мне нужно загрузить и запустить модуль C, используя dlopen() / LoadLibrary() и иметь возможность просматривать обширную информацию о профилировании и отладке только размещенного модуля (не хост-программы) с помощью оперативного журнала, отображаемог…
10 ноя '13 в 16:39
0 ответов

Не удалось сопоставить сегмент из общего объекта

Я столкнулся с проблемами при загрузке файла. проблема в том, что файл там и есть для второго общего файла. Первый *.so успешно загружен, но второй выдает мне эту ошибку: Error Loading prog2.so: prog2.so: failed to map segment from shared object: Ca…
15 янв '13 в 16:54
0 ответов

Как правильно использовать dlopen() на Android?

У меня есть общий объект, связанный с моим приложением для Android. Это в lib папка из APK. На Android 7 я могу просто сделать следующее, чтобы загрузить его: lib = dlopen("libfoo.so", RTLD_LAZY); Тем не менее, это не работает на Android 4. На Andro…
22 апр '18 в 14:17
2 ответа

dlopen, фабричный шаблон и таблица виртуальных методов

Я пытаюсь обдумать, как работает фабричный шаблон при использовании dlopen в C++. Извините за длинный пост. ТЛ; др; Вопрос выделен жирным шрифтом ниже. Фрагменты из http://www.tldp.org/HOWTO/C++-dlopen/thesolution.html с удаленной проверкой ошибок д…
24 янв '17 в 16:06
1 ответ

Используйте dlinfo для печати всех символов в библиотеке

У меня есть класс C++, который использует dlopen для загрузки библиотеки. В качестве упражнения я пытался сбросить все имена символов из загруженной библиотеки. Я использовал dlinfo загрузить карту ссылок через RTDL_DI_LINKMAP: struct link_map { Elf…
12 июл '13 в 17:33
1 ответ

Должен ли я сделать malloc() перед использованием dlopen()?

Ниже показан фрагмент кода, который я использую. Должен ли я распределить пространство с помощью malloc перед выполнением dlopen? void* pvHandle = NULL; /* Dynamically loading library */ pvHandle = dlopen ("libame.so", RTLD_LAZY | RTLD_GLOBAL); if (…
08 сен '15 в 08:33
2 ответа

Отладить после смерти дескриптор dlopen()?

У меня есть corefile и я хочу отладить дескриптор, возвращенный dlopen() Например, убедитесь, что он все еще не поврежден. dlsym() функция, вызванная на дескриптор, указывает this=0x0 в трассировке стека. Есть ли описание того, что стоит за dlopen()…
23 май '18 в 14:58
1 ответ

GDB, как установить точку останова в динамической библиотеке, открытой Dlopen

Во второй половине дня, Everbody. У меня есть приложение 'test', скомпилированное main.c. Динамическая библиотека 'libtest.so', которая компилируется test.cpp с '-g'. В main.c я вызываю libtest.so с помощью dlopen. И теперь я хочу установить точку о…
04 апр '14 в 09:55
1 ответ

Могу ли я добавить параметр в функцию _init() при использовании API dlopen() под Linux?

Теперь я пишу загружаемый модуль.so под Linux, я хочу использовать dlopen в основной программе и использовании _init() в загружаемом модуле.so. Моя программа такова: Основная программа: ... dlopen(lib, flags); ... загружаемый модуль: #define MODULE_…
04 июл '17 в 03:10
3 ответа

Valgrind дает ошибку, но не может найти местоположение

Я начал использовать valgrind всего один день назад, как это было предложено кем-то на самом SO. Это удивительный инструмент, но сегодня у меня возникла проблема с ним. Он дает следующую ошибку: definitely lost bytes но не могу определить местонахож…
05 окт '11 в 01:31
4 ответа

C++ приведение из void* в SomeClass*

Я работаю над библиотекой C++, которая будет динамически загружаться (dlopen, dlsym...) в программах на C++ и C в качестве плагина. Программы на C++ будут использовать функции разрушителя из библиотеки для вызова конструктора и деструктора соответст…
29 ноя '11 в 14:04
1 ответ

Деструктор глобальной статической переменной в разделяемой библиотеке не вызывается на dlclose

В основной программе я dlopen а также dlclose (LoadLibrary а также FreeLibrary соответственно) общая библиотека. Общая библиотека содержит статическую переменную, которая создается при dlopenи уничтожен на dlclose, Это поведение согласуется с MSVC 2…
21 июл '16 в 17:23