Fw: [問題] dlopen load shared object seg fault

作者: antirazin (~ SNSD & KARA ~ )   2018-02-12 01:30:16
※ [本文轉錄自 C_and_CPP 看板 #1QW7qvs9 ]
作者: antirazin (~ SNSD & KARA ~ ) 看板: C_and_CPP
標題: [問題] dlopen load shared object seg fault
時間: Mon Feb 12 01:28:21 2018
開發平台(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
皓平:其實馬雅人早就預言到了
作者: hizuki (ayaka)   2018-02-12 07:50:00
貼程式和結果
作者: harry0890 (harry)   2018-02-15 07:40:00
你的.so檔是怎麼產生,感覺是toolchain不一樣所導致的
作者: antontw (公道伯)   2018-02-22 09:47:00
用 file 先查一下 mime ?

Links booklink

Contact Us: admin [ a t ] ucptt.com