[問題] dlopen load shared object seg fault

作者: antirazin (~ SNSD & KARA ~ )   2018-02-12 01:28:21
開發平台(Platform): (Ex: Win10, Linux, ...)
CentOS 7 (VMware)
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
g++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
手邊有一個.so檔,想透過dlopen使用裡面的function,
雖然編譯過了,但是執行時出現segmentation fault。
初步排錯,改餵/usr/lib64下的內建library的.so沒問題,
這樣是表示這.so檔有問題嗎?
但我用nm print是沒問題的。
目前沒什麼頭緒,因此在這邊請教各位大大m(_ _)m
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
執行後Segmentation fault
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <iostream>
#include <dlfcn.h>
int main(int argc, const char * argv[]) {
void* func = dlopen("/home/test/libtest.so", RTLD_LAZY);
//隨便換成內建的 /usr/lib64/libz.so.1.2.7 的話就能跑完
if (!func) {
std::cerr << "Cannot load library: " << dlerror() << '\n';
return 1;
}
return 0;
}
補充說明(Supplement):
作者: waterspout (我看見常福在咬來威)   2018-10-11 21:45:00
其中這男子為什麼在對方說不後 仍強行撫摸對方下體而裡面有沒有什麼秘密? 好!我們今天也請到了五位來賓
作者: e6638   2018-10-11 21:46:00
皓平:其實馬雅人早就預言到了
作者: wtchen (沒有存在感的人)   2018-02-12 07:32:00
訊息不足,不補就砍文
作者: loveflames (咕啾咕啾魔法陣)   2018-02-12 08:49:00
你是叫別人隔空抓藥嗎
作者: descent (「雄辯是銀,沉默是金」)   2018-02-12 21:21:00
你先不要用 dlopen, 直接 link 是正常的嗎?試試看 gdb debug core 看能不能找出有問題的點如果可以, 提供那個 .so source code 是最好的

Links booklink

Contact Us: admin [ a t ] ucptt.com