簡體   English   中英

什么?? ()中的segfault錯誤是什么意思?

[英]What does ?? () in segfault error mean?

我試圖用C語言編寫一個回顯服務器(說實話,我只是從http://gnosis.cx/publish/programming/sockets.html復制代碼)。 無論如何,編譯程序沒問題,但是在運行時會出現段錯誤。 gdb給出以下錯誤消息:

程序收到信號SIGSEGV,分段故障。 0xb7e46d5c in ?? ()來自/lib/i386-linux-gnu/libc.so.6

我的問題是:“ ??”代表什么? 意思? 據我了解,那應該是失敗的函數的名稱。

您的glibc中沒有可用的調試信息(因為通常在沒有調試信息的情況下進行編譯)。 因此,您唯一能看到的就是函數的地址-但不是它的名稱,因為它是未知的。

但是,您可以使用調試信息(gcc選項: -ggdb )編譯程序。 然后你可以使用如GDB或Valgrind的調試器,看看哪行代碼導致了段錯誤。

嘗試運行“ bt”命令,它將給出堆棧跟蹤。 段錯誤很可能在您的代碼中,該代碼在libc.so.6處得到通知。 由於libc.so.6是優化的二進制文件,因此它沒有調試符號,因此您得到?s。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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