Ubuntu 为什么在启动C++;gdb的程序?

Ubuntu 为什么在启动C++;gdb的程序?,ubuntu,gdb,segmentation-fault,g++,Ubuntu,Gdb,Segmentation Fault,G++,我有一个g++项目,希望使用gdb调试它。以程序作为参数打开gdb会产生以下输出: Reading symbols from <my_app_name>...Segmentation fault (core dumped) 链接标志 -lssl -lcrypto -pthread -luuid -rdynamic 我的可执行文件大小为2141712,存在调试信息 “top命令”显示3417168可用内存 $ g++ --version g++ (Ubuntu 4.8.2-19ub

我有一个g++项目,希望使用gdb调试它。以程序作为参数打开gdb会产生以下输出:

Reading symbols from <my_app_name>...Segmentation fault (core dumped)
链接标志

-lssl -lcrypto -pthread -luuid -rdynamic
我的可执行文件大小为2141712,存在调试信息 “top命令”显示3417168可用内存

$ 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分段在我的可执行文件启动时出错,调试经验将很困难。有人能帮忙吗

我也问了这个问题,但我的问题到此为止,因为它更适合堆栈溢出。

乍一看:

您的编译标志似乎缺少一个前导破折号:

-c std=c++11 -g
可能应该是:(
在std=c++11前面添加前导破折号)

您的链接标志:

-lssl -lcrypto -pthread -luuid -std=c++11-rdynamic
可能应该是:(
在-std=c++11和-rdynamic之间添加空格)

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


用更新的标志再试一次。

对不起@iomix,我在重新复制CXXFLGS时输入了一个拼写错误。我已经用适当的标志编辑了原始问题。我确实拥有领先的-before-std=c++11。我还从链接标志中删除了-std=c++11,谢谢你的提示。仅供参考,在删除link标志-std=c++11之后,我仍然从gdb加载项目。
-c -std=c++11 -g
-lssl -lcrypto -pthread -luuid -std=c++11-rdynamic
-lssl -lcrypto -pthread -luuid -std=c++11 -rdynamic