LINUX.ORG.RU

[C++][boost][asio] ошибка при выполнении


0

1

Добрый лор, нужна мне помощь твоя непосильная. Есть у меня маленькое клиент серверное приложение.

Клиент, создает данные, сериализаует их (boost serialization), передает серверу(boost asio)

Сервер, получает их, десериализует, что то делает с ними, сериализует и отправляет назад.

Клиент, получает их, и выводит на экран.

Изначально писал проект на VS2010 (так как она была под рукой). Но в ходе работы возникала ошибка на сервере после чего он падал, ошибка абсолютно непонятная. Долго я парился, менял, тестировал, дебажил, но так и не понял в чем проблема. Спустя некоторое время собрал эти же исходники но под линь, а бац... все работает и не падает.

вот тема на винграде, там немного подробностей и скрин с ошибкой

http://forum.vingrad.ru/forum/topic-319037.html

вот ссылки на проекты для VS2010 и сборка в Cmake (для компиляции необходим boost, желательно последний)

http://rapidshare.com/files/441926386/for_win_MVS2010.zip

http://rapidshare.com/files/441926684/for_linux.tar.gz

Прошу, потестите пожалуйста оба на своих машинах, и отпишитесь о том появляются ли какие либо ошибки у вас.


Ответ на: комментарий от shty

фак, я слаучайно не ту версию для VS прикрепил, там урезано и все работает. Щас попробую переделать класс Connection для работы с shared_ptr, в надежде что именно в этом месте и была ошибка.

Cupper ()
Ответ на: комментарий от Reset

ага, в релизе вместо него может быть просто 3.14здец :)

я даже скажу больше - не может быть, а скорее всего будет :)

я к тому почему под linux нет таких сообщений - может собрано в релиз

shty ★★★★★ ()
Ответ на: комментарий от shty

переделал везде используются теперь вместо указателей shared_ptr. Все по прежнему... пздц ваще не понимаю где ошибка :(

Cupper ()
Ответ на: комментарий от Cupper

я понимаю если бы оно вообще не работало, или падало не доходя до конца, но так ведь сервер даже ответ отправляет и после этого, когда управление должно быть передано на пустой обработчик в какойто момент где то в глубине вылетает ошибка. Притом именно на стороне сервере, на клиента все корректно :(

Cupper ()
Ответ на: комментарий от Boy_from_Jungle

Уже и не помню. Ошибка была в потере объекта, который предоставлял метод, которому передевалась функция для коллбека, друго объекта. И при возврате на этот самый коллбек когда по сути объект Connection уже был и ненужен, гдето в глубинных недрах он был всетаки нужен.

Решилось передачей объекта в параметрах до самого последнего обработчика, пускай он даже ничего и не делал.

Cupper ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.