未進入main函數就出現段錯誤


今天我在運行一個代碼時出現了段錯誤。

 

(1)用gdb查看core文件信息

*******************************************************************************************

[liangxx@localhost bin]$ gdb ./test-client core.2693
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/liangxx/learning/src/study_boost/study_property_tree/config/bin/test-client...done.
Core was generated by `./test-client'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000000001 in ?? ()
(gdb) bt
#0 0x0000000000000001 in ?? ()
#1 0x00007fffe067f6df in ?? ()
#2 0x0000000000000000 in ?? ()
(gdb) q

*******************************************************************************************

 

(2)使用gdb設置斷點進行單步調試

未進入main函數就出現段錯誤!

 

(3)檢查Makefile內容

*******************************************************************************************

OBJC=test-client.cpp
TARC=test-client

CXX=g++
CXXFLAGS=-shared -fPIC -Wall -g -I../hrd/ -L../lib/ -lprotocol

all:$(TARC)
$(TARC):$(OBJC)
$(CXX) $(OBJC) $(CXXFLAGS) -lclient -o $(TARC)

install:
cp $(TARC) ../bin/

clean:
rm -f $(TARC)

*******************************************************************************************

 

(4)結論

原來是編譯參數搞錯,將生成共享庫的編譯參數錯誤地用於生成可執行文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM