C ++调试:使用SIGABRT终止

时间:2016-12-18 19:58:21

标签: c++ debugging gdb sigabrt

我正在尝试用C ++编写一个程序,它运行在一组机器上,所有机器都通过TCP套接字相互通信。程序在其中一台机器上随机崩溃。我用gdb对core-dump进行了分析。以下是输出:

* {
    box-sizing: border-box;
}

.header {
    text-align: center;
    width: 100%;
}

li {
    color: rgba(102, 102, 102, .5);
    padding: 20px;
    margin: 20px;
    font-size: 16px;
    font-family: "Open Sans Condensed", sans-serif ;
    text-transform: uppercase;
    display: inline-block;
}

.wname {
    font-size: 32px;
    color: #F68404;
    font-weight: 200;
    border-bottom: solid 1px;
    border-bottom-color: #F68404;
}

li:active {
    color: #F68404;
    border-bottom: solid 1px;
    border-bottom-color: #F68404;
}

li:hover {
    color: #F68404;
    font-weight: 300;
}

/*.jumbotron {
    background: url("https://newevolutiondesigns.com/images/freebies/city-wallpaper-11.jpg") no-repeat top center;
    background-size: cover;
    height: 800px;
}

.main {
    color: rgb(102, 102, 102);
    font-family: "Open Sans Condensed", sans-serif;
    text-align: center;
}

.btn-main {
    font-size: 32px;
    padding: 10px;
    border: solid 1px #000;
    background-color: aliceblue;
    color: #000;
    border-radius: 10%;
}

.btn-main:hover {
    color: aliceblue;
    background-color: #000;
    border: solid 1px aliceblue;
}*/

/*Class Rules for all anchors/hyperlinks*/
a {
    text-decoration: none;
    color: inherit;
}

对于我应该看什么的任何建议?我该怎么办?任何帮助都非常感谢。

我现在不共享代码,因为它是跨文件的大代码。但如果需要,我可以分享。

1 个答案:

答案 0 :(得分:2)

此错误:__fdelt_chk (d=<optimized out>) at fdelt_chk.c:25表示您的程序违反了其中一个FD_*宏的前提条件。

fdelt_chk的来源非常简单,只有两个条件失败:传入负文件描述符,或传入大于1023的文件描述符。

在这个时代,在任何可以拥有超过1024个并发连接的程序中使用select和/或FD_SET(Linux很容易允许)只能以泪流满面。请改用epoll