簡體   English   中英

另一個系統上的應用程序在啟動時崩潰,沒有針對sudo的錯誤消息,針對非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,並且所有設置命令均相同。

如何對其進行編譯,使其可以在另一個系統上執行?


作為進一步的測試,我在新系統上對其進行了編譯,並且可以正常工作。

不能在一個系統上編譯並在另一個系統上運行嗎?

GDB

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM