dunno Temat założony przez niniejszego użytkownika |
Brak możliwości zalogowania się do gry - wycieki pamięci - malloc(): unsorted double linked list corrupted » 2021-12-02 20:02:11 Posiadam skompilowany na Debian10 silnik gry mmorpg, z uwagi na wiek aplikacji posiada on sporo błędów. Występują wycieki pamięci które powodują błędy/crashe i aplikacja zamyka się niespodziewanie - w załączeniu logi z gdb z błędem "malloc(): unsorted double linked list corrupted". Logi gdb: http://www.wklejto.pl/929345. Ponadto zdarzają się sytuacje, w których de facto nie występuje crash aplikacji, jednak jest problem z połączeniem z bazą danych - pomimo wpisania poprawnego loginu i hasła wyskakuje, że jest niepoprawny. Moim zdaniem jest to ze sobą powiązane i problem jest związany z socketami i sygnałami sigpipeRobiłem także testy valgrind'em w celu lokalizacji źródeł wycieku, ale sypie on tyloma błędami, że nie wiem czy ktokolwiek byłby w stanie mi pomóc go zlokalizować. W razie konieczności dołączę logi, ponadto problem ten wystepuje niespodziewanie, więc nie jestem pewny czy valgrind go wskaze, musiałby wystąpić w tym czasie. otserv.cpp: 475: if( IOAccountSQL::getInstance()->getPassword( accnumber, name, acc_pass ) && passwordTest( password, acc_pass ) ) otserv.cpp: 611: protocol->ReceiveLoop();
Plik otserv.cpp http://www.wklejto.pl/929346. Czy byłby ktoś w stanie pomóc rozwiązać problem w tym zakresie na forum lub poza forum? |
|
DejaVu |
» 2021-12-03 15:03:13 Skompiluj sobie kod w debug bez optymalizacji. Wówczas będziesz widział gdzie masz problemy. |
|
dunno Temat założony przez niniejszego użytkownika |
» 2021-12-03 18:15:53 Dzięki za odpowiedź, ale wydaje mi się, że jest skompilowany bez optymalizacji (podaje link do makefile) Makefile: http://www.wklejto.pl/929578. Czy jednak coś zrobiłem niepoprawnie? |
|
DejaVu |
» 2021-12-03 18:28:20 No symbol table info available. #7 0xf7d22cfc in ?? () from /lib/i386-linux-gnu/libmariadb.so.3 No symbol table info available. #8 0x565a4892 in DatabaseMySQL::storeQuery (this=0x56765f10, query="SELECT `password` FROM `accounts` WHERE `id` = 111111 LIMIT 1") at databasemysql.cpp:119
Debugger napisał Ci w callstacku/backtrace, że komunikacja z bazą powoduje Twoje problemy. Skompiluj sobie libmariadb ze źródeł to będziesz mógł ustalić dlaczego ta biblioteka się wysypuje. |
|
dunno Temat założony przez niniejszego użytkownika |
» 2021-12-03 19:30:47 |
|
DejaVu |
» 2021-12-03 19:34:32 A skąd masz tą bibliotekę? Skopiowałeś ją skądś czy zainstaliwałeś za pomocą apt-get install? |
|
dunno Temat założony przez niniejszego użytkownika |
» 2021-12-03 19:44:25 Tak, zainstalowałem za pomocą apt-get install (niżej rozwinę to trochę) Aplikacja sama w sobie jest pod 32 bity, używam 64-bitowego Debian 10 https://wiki.debian.org/Multiarch/HOWTO. do kompilacji dodałem architekture 32 bitową, aby użyć bibliotek 32-bitowych: dpkg --print-architecture dpkg --add-architecture i386 dpkg --print-foreign-architectures i zainstalowałem niezbędne biblioteki apt-get update apt-get upgrade apt-get install gcc apt-get install automake:i386 apt-get install liblua50-dev:i386 apt-get install liblualib50-dev:i386 apt-get install libxml++2.6-dev:i386 apt-get install libmysqlclient-dev:i386 apt-get install g++:i386 apt-get install libboost-thread1.67-dev:i386 Natomiast do poprawnego działania aplikacji niezbedna jest baza danych mysql (zazwyczaj działało bez problemu, lecz na debian10 nie mogłem zainstalowac mysql'a i zainstalowalem mariadb) apt-get install default-mysql-client apt-get install default-mysql-server Defaultowy w tym przypadku był mariadb. Czy by to oznaczało jakieś problemy z mariadb? i szukać rozwiązania probując zainstalować mysql? Czy jednak mariadb powinien być tak samo kompatybilny i wszystko powinno również na nim funkcjonować? Co powinienem zrobić aby ustalić przyczynę problemu/rozwiązać go? |
|
DejaVu |
» 2021-12-03 19:48:19 |
|
« 1 » 2 3 |