2014-05-23 35 views
0

我有一个g ++项目,并希望使用gdb进行调试。打开GDB与程序作为参数产生以下输出:为什么使用gdb启动C++程序时出现分段错误?

Reading symbols from <my_app_name>...Segmentation fault (core dumped) 

编译标志

-c -Wall -Werror -Wfatal-errors -Wpedantic -std=c++11 -g 

链接标志

-lssl -lcrypto -pthread -luuid -rdynamic 

我的可执行文件大小为2141712的调试信息本 的'最高命令'显示3,417,168个空闲内存。

$ g++ --version 
g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2 

$ gdb --version 
GNU gdb (Ubuntu 7.7-0ubuntu3.1) 7.7 

我曾与在过去的gdb的有限经验,以及我的意思与我的可执行程序开始时使用GDB这个项目,遗憾的是,因为GDB段错误,调试经验将是困难的。有人可以帮忙吗?

我也问过这个问题Ask Ubuntu但我的问题在那里关闭了,因为它更适合堆栈溢出。

回答

0

首先看看:

你的编译标志似乎缺少前导破折号:

-c std=c++11 -g 

也许应该是:(add leading dash in front of std=c++11

-c -std=c++11 -g 

你的链接标志:

-lssl -lcrypto -pthread -luuid -std=c++11-rdynamic 

大概应该是:(add space between -std=c++11 and -rdynamic

-lssl -lcrypto -pthread -luuid -std=c++11 -rdynamic 

请注意,您不需要-std=c++11选项两次(配置&链接标志)。

再试一次更新的标志。

+0

对不起@iomix,我重新选择我的CXXFLGS时输入了一个错字。我用正确的标志编辑了原始问题。我确实拥有了领先的 - before -std = C++ 11。我也从链接标志中删除了-std = C++ 11,谢谢你的提示。仅供参考,删除链接标志-std = c + + 11后,我仍然从段落加载项目从gdb。 – Bamaco

相关问题