Проблема C в 64-битной архитектуре: pthread_kill () - PullRequest
0 голосов
/ 19 января 2011

Вопрос довольно прост: мое приложение отлично работает на 32-битной архитектуре, но на 64-битной арке. Я получил segmentation fault. Я предполагаю, что причиной является выполнение pthread_kill() вызова. Возможно ли это или мое предположение неверно?

Ответы [ 3 ]

1 голос
/ 20 августа 2011

Вот ссылка на вопрос о добавлении segfault в pthread_kill, вызванное недействительными pthread_t идентификаторами: http://udrepper.livejournal.com/16844.html

0 голосов
/ 23 января 2011

Ошибка сегментации почти наверняка не результат pthread_kill(), но простая старая ошибка в приложении (многие ошибки отображаются только в 64-битных компиляциях или только при определенных схемах памяти; ничегоособенно о вашем конкретном приложении здесь.

Вместо угадывания в чем причина может , запустите ваше приложение под GDB или Valgrind.Скорее всего, и то и другое ясно покажет, где ваша ошибка.

0 голосов
/ 19 января 2011

Какую операционную систему и какой glibc вы используете?

Если вы используете основную реализацию pthread (скажем, недавний GNU glibc в Linux), я вполне уверен, что они не сломаны.

Я думаю, что ваш сбой, вероятно, вызван какой-то проблемой в вашем коде или, возможно, неправильным смешением 32-битного и 64-битного двоичного кода.

Не могли бы вы попытаться воспроизвести ваш сбой с помощью как можно меньшего количества строк кода и вставить его сюда?

...