Что такое strtol_l_internal? - PullRequest
       4

Что такое strtol_l_internal?

0 голосов
/ 27 августа 2011

Я получаю это в моей программе, C ++

Программа получила сигнал SIGSEGV, Ошибка сегментации. 0xb7d62153 в _ _strtol_l_internal () из /lib/libc.so.6

Я понял это с помощью GDB. CC прекрасно скомпилировал его вместе с G ++

    sockf = openSocket(domainname, portc);
    if(sockf > 0){
        log("ZONTRECK","COMPLETED SOCKET!");
        int newsockfd;
        newsockfd = openListen(sockf,portc);
        log("ZONTRECK","Starting console!");

Ответы [ 4 ]

2 голосов
/ 27 августа 2011

Используйте команду backtrace в gdb, чтобы увидеть, как программа достигла этой точки из вашего кода - это поможет найти передаваемый параметр, вызывающий проблему (возможно, NULL или иным образом недопустимый указатель).

2 голосов
/ 27 августа 2011

Это внутренняя функция в libc, связанная с strtol() - если бы мне пришлось рисковать предположением, я бы сказал, что вы пытаетесь прочитать число, и что-то взрывается.

0 голосов
/ 29 августа 2011

Мне пришлось отредактировать файл, который я не разместил на этом сайте. Это мой файл, который содержит openSocket, openListen.

Функция atoi требует const char, а не char.

Я передавал ему символ вместо константного символа.

Я исправил эту проблему, изменив char в int main () на const char

0 голосов
/ 27 августа 2011

Маби, вы пытаетесь здесь прочитать память, поврежденную каким-то кодом, запущенным до этого. Если это так, то лучший способ отладить это с помощью Valgrind.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...