Описание тега dlsym
Функция POSIX для доступа к коду или данным в динамически загружаемой библиотеке с использованием имени кода.
0
ответов
Есть ли способ определить, была ли библиотека статически связана во время выполнения?
У меня есть ситуация, когда я распространяю библиотеку, которая использует взаимное расположение символов, чтобы иметь дело с некоторыми stdlib.h функции, например, malloc, Я бы обычно просто использовал стандарт psymbol = dlsym(RTDL_NEXT,"symbol") …
30 дек '15 в 20:03
1
ответ
Android4.2 libdvm.so Не могу найти функцию dexFileParse
libdvm.so внутри Android2.3, я могу использовать код для вызова кода dexFileParse: void * handle=dlopen("/system/lib/libdvm.so",RTDL_LAZY); void *pFunc=dlsym(handle,"dexFileParse"); но libdvm.so экспортирует _Z16dexFileParseXXX, я не получу адрес de…
30 авг '13 в 03:38
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
0
ответов
Крюк dlsym в системе AIX
Я хочу использовать LDR_PRELOAD для перехвата dlsym, но я не смог найти способ получить адрес dlsym в libc.a. Я пытаюсь использовать nlist с libc.a, но это не сработало. Это какой-нибудь способ получить dlsym по таблице символов?
21 июн '18 в 12:32
0
ответов
Функция обтекания без dlsym
Я видел похожие вопросы / ответы, которые дают мне подсказки, но они не касаются того, что я точно хочу знать. То есть, как написать общую библиотеку, которая: оборачивает системную функцию (скажем, malloc), внутренне использует реальную версию упак…
01 сен '16 в 06:11
2
ответа
Как получить доступ к динамически размещаемым массивам Fortran в C
Мой главный вопрос: почему массивы делают такие странные вещи, и есть ли какой-нибудь способ сделать следующее "чистым" способом? У меня в настоящее время есть программа C foo.c взаимодействие с программой на Фортране bar.f90 с помощью dlopen/dlsym …
13 авг '12 в 13:04
4
ответа
Вставка функции в Linux без dlsym
В настоящее время я работаю над проектом, в котором мне нужно отслеживать использование нескольких системных вызовов и низкоуровневых функций, таких как mmap, brk, sbrk, До сих пор я делал это с помощью вставки функции: я пишу функцию-оболочку с тем…
15 июн '09 в 21:22
2
ответа
Как dlsym может успешно импортировать функцию из раздельной двоичной библиотеки?
Странно, что dlsym может импортировать функции из удаленных двоичных файлов. Может кто-нибудь сказать мне, почему / как? === FILE: a.c === int a1() { return 1; } int a2() { return 2; } === end of a.c === === FILE: b.c === #include <stdio.h> #i…
21 июл '11 в 05:41
1
ответ
Как напечатать переменную dlsym()?
Я пишу свою собственную библиотеку: struct utsname Lib; char *s(){ uname(&Lib); return Lib.sysname; } Когда я хочу напечатать имя моей системы: int main(int argc, char *argv[]){ void *lib=dlopen(".../Mylib.so",RTLD_LAZY); if(!lib) dlerror(); els…
15 мар '15 в 16:04
1
ответ
Как отобразить dlsym на нестатическую функцию-член C++ способом, аналогичным функции C?
Я внимательно изучил и протестировал следующие URL-адреса: функция вызова в разделяемой библиотеке (Linux) получает ошибку сегментации, а также https://git.xeserv.us/Quora/dlsym-example/src/master/testprog.c. Мой вопрос заключается в том, как отобра…
04 янв '16 в 18:11
3
ответа
Проблема в использовании подпрограмм динамической загрузки C
У меня есть приложение, состоящее из разных модулей, написанных на C++.Один из модулей предназначен для обработки распределенных задач в SunGrid Engine. Он использует API-интерфейс DRMAA для отправки и отслеживания заданий сетки. Если клиент не подд…
03 июл '09 в 15:14
2
ответа
Указатели на функции: *(void**) (&fun) = dlsym (lib, "fun") как его работа?
Я использую dlsym для заполнения указателя на функцию, которая является переменной-членом вызова. как ниже class ABC { private: void (*m_fun) (int); } сейчас, если я назначу m_fun = (void*) dlsym (libHandle, "fun") Это дает ошибку Через интернет я н…
01 май '14 в 12:36
0
ответов
Проверка во время выполнения на наличие слабосвязанных символов из стороннего фреймворка в Swift
В macOS я использую внешнюю среду (написанную на C), которая должна быть установлена пользователем. В Swift мне нужно во время выполнения проверять, существует ли он, и я не могу использовать #available(), поскольку он предназначен для функций, св…
14 ноя '17 в 04:42
1
ответ
LD_PRELOAD функция с перечислениями и структурой
Я пытаюсь LD_PRELOAD функцию с объявлением, как // header1.h typedef enum { ... } enum1; // header2.h typedef enum { ... } enum2; typedef struct { ... } Structure1; enum1 foo(Structure1* str, enum2 val); Можно ли использовать, скажем unsiged int вме…
25 май '18 в 14:33
2
ответа
Как получить адрес функции из текущего исполняемого файла?
Мне нужно знать адрес функции из текущего исполняемого файла на Solaris 10 с использованием C++ (я использую GNU g++ 4.9.2). Например, у меня есть функция, скажем как: void doSomething(const char *p), которая может быть или не быть определена в теку…
22 ноя '16 в 04:43
1
ответ
Неправильная позиция аргументов в функции, импортированной с помощью dlsym
У меня странная проблема. Когда я вызываю импортированный метод с аргументами из разделяемой библиотеки, в этом методе у меня неверные аргументы. Это как: x = 1; y = 2; z = 3; (*method)(x,y,z); В методе у меня есть: void method(int x, int y, int z){…
29 май '13 в 17:12
1
ответ
Работа с общими библиотеками - это все еще dlopen, dlsym и другие?
Я использовал dlopen(), dlsym() и друзья в прошлом, чтобы загружать динамические библиотеки вручную во время выполнения - но это было в C. В C++ я ожидал бы немного более высокий уровень абстракции API, или, по крайней мере - что-то, что прозрачно з…
18 июн '16 в 20:46
1
ответ
Определение интерфейса абстрактного класса в разделяемой библиотеке
Скажем, у меня есть абстрактный базовый класс, определенный так: interface.hpp #ifndef INTERFACE_HPP #define INTERFACE_HPP 1 class interface{ public: virtual void func() = 0; }; #endif // INTERFACE_HPP Затем я собираю модуль перевода test.cpp в общи…
14 июл '15 в 12:51
0
ответов
dlsym Функции внутри класса C++ Linux
Как я могу получить доступ к функции внутри класса, используя dlsym? Пример: class test { public: int (testCall)(); }; Если я использую dlsym(handle, "testCall"); это дает мне ошибку. Вызов dlsym завершился неудачно: /usr/lib/a.so: неопределенный си…
07 ноя '16 в 13:29
2
ответа
Вызов функции по имени с помощью dlsym в iOS
Я не могу вызвать функцию по имени в iOS? У меня есть функция C называется getstring, Я называю это следующим образом: void* handle = dlopen(NULL, RTLD_NOW); if (handle) { fp func = dlsym(handle, "getstring"); if (!func) responseField.text = [NSStri…
18 фев '11 в 10:56