[英]Segmentation fault in libusb 1.0 program when run as user, not as sudo
[英]Application on another system crashes on startup without error message for sudo, Segmentation Fault for non-sudo
我已經在Ubuntu 13.10上編寫了一個websocket ++服務器,並試圖在Linux Mint 16上執行它。
我已經安裝了所有依賴項,並且main
下的第一行是一個永遠不會觸發的cout
。
這是編譯命令:
g++ -o Dgn Dgn.cpp ed25519-donna-master/ed25519.o
-Og -std=c++0x -I ~/Dgn -D_WEBSOCKETPP_CPP11_STL_ -D_WEBSOCKETPP_NO_CPP11_REGEX_
-lboost_regex -lboost_system -L/usr/lib -lssl -lcrypto -pthread -lpqxx
-lboost_thread -ljson_spirit -lgmp -lgmpxx
如果我使用sudo
執行以使用受限端口,則它會立即失敗,並且不會錯誤返回命令行。
如果我不使用sudo
執行sudo
,則會顯示Segmentation Fault
並立即在命令行中失敗。
~/Dgn
中的目錄在新系統上。
我做了一個快速,簡單的測試,並檢查了一個基本的websocket ++示例是否可以正常編譯和執行,並且成功完成了。
兩種系統都是64位的。 唯一的區別是發行版,但Linux Mint 16基於Ubuntu 13.10,並且所有設置命令均相同。
如何對其進行編譯,使其可以在另一個系統上執行?
作為進一步的測試,我在新系統上對其進行了編譯,並且可以正常工作。
不能在一個系統上編譯並在另一個系統上運行嗎?
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7de58da in ?? () from /lib64/ld-linux-x86-64.so.2
cout
行從不觸發(我假設它具有<< std::endl
)這一事實意味着崩潰發生在靜態對象構造函數中。 調試的最直接方法是允許核心轉儲(請參見man limits
)並使用gdb檢查轉儲。 到目前為止,這就是我能想到的。 更多細節將有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.