Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
ariczek

C++ a kopie pointeru...

Recommended Posts

Nějak jsme teď na hulákadle nakousli problém s ukazatelema, delete a check na NULL...

 

například:

 

#include <iostream>
using namespace std;

int main(int argc, char* argv[]) {
 int * a = new int;
 *a = 8;
 cout << a << " " << *a << endl;
 delete a;
 if (a) {
   cout << a << " " << *a << endl; }
 return 0;
}

 

se provede i ten spodni cout

 

vystup:

0x8792008 8
0x8792008 0

 

dalo by se to trochu vyřešit přidáním úrovně ukazatelů...

 

 

#include <iostream>
using namespace std;

int main(int argc, char* argv[]) {
 int ** a = new int*;
 *a = new int;
 **a = 8;
 cout << *a << " " << **a << endl;
 //co kdyz nekde dame b, kopii... a o pul hodiny pozdejc to deletnem v a, ale b uz nemame pod kontrolou ? 
 int ** b = a;
 delete *a;
 *a = NULL;
 if (*a) {
   cout << *a << " a " << **a << endl;
 }
 if ( *  {
   cout << *b << " b " << **b << endl;
 }
 delete a;
 a = NULL;
 //delete b - tady by to crashlo  double delete 
 b = NULL; 
 return 0;
}

takhle nejako

 

vystup:

0x8c4c018 8

 

nenapada nekoho jeste lepsi reseni ?

 

EDIT: hlavně mi tam jde o to řešení u b v druhém příkladu :) když nemůžu ručně změnit ukazatel na NULL, protože ho neznám.

Edited by ariczek

Share this post


Link to post
Share on other sites

int ** b = &a;

 

to je v podstatě jinak zapsané řešení s přidáním úrovně ukazatele

 

 

#include <iostream>
using namespace std;

int main(int argc, char* argv[]) {
 int * a = new int;
 *a = 8;
 cout << a << " " << *a << endl;
 int ** b = &a;                                                                                              
 delete a;
 a = NULL;
 if (a) { 
   cout << a << " a " << *a << endl;
 }
 if (*b ) {
   cout << *b << " b " << **b << endl;
 }  
 b = NULL;
 return 0;
}

 

 

Abych uvedl, co jsem neuvedl - na hulákadle jsme řešili že core spadne v handleru std::set (tam chyba nebude) i když Player* neni NULL, protože je to pravděpodobně kopie, která se smazala z jiného ukazatele... (jiny thread ?)

 

Takže tohle řešení by v daných místech vyžadovalo přidání hvězdiček navíc... to mi pořád přijde ujeté, není ještě jiná možnost ?

Edited by ariczek

Share this post


Link to post
Share on other sites

tady je k tomu crashlog :D

 

 

[New Thread 0x7fffeebff700 (LWP 29633)]
[New Thread 0x7fffd93ff700 (LWP 29644)]
[New Thread 0x7fffd67ff700 (LWP 29645)]
[New Thread 0x7fffd5ffe700 (LWP 29646)]
[New Thread 0x7fffd4bff700 (LWP 29647)]
[New Thread 0x7fffd43fe700 (LWP 29648)]
[Thread 0x7fffd4bff700 (LWP 29647) exited]
[New Thread 0x7fffd33ff700 (LWP 29649)]
[New Thread 0x7fffd23ff700 (LWP 29650)]

Program received signal SIGSEGV, Segmentation fault.
[switching to Thread 0x7fffd67ff700 (LWP 29645)]
__distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:79
79		  ++__first;
#0  __distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:79
#1  distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:114
#2  size (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_list.h:805
#3  Group::GetMembersCount (this=<value optimized out>) at /home/BGWTLK/sources/src/server/game/Groups/Group.cpp:1921
#4  0x000000000086b300 in Player::UninviteFromGroup (this=<value optimized out>) at /home/BGWTLK/sources/src/server/game/Entities/Player/Player.cpp:2936
#5  0x0000000000a93baf in WorldSession::LogoutPlayer (this=0x7fffb38f8c00, Save=true) at /home/BGWTLK/sources/src/server/game/Server/WorldSession.cpp:486
#6  0x0000000000ab4e12 in WorldSession::HandleLogoutRequestOpcode (this=0x7fffb38f8c00) at /home/BGWTLK/sources/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp:400
#7  0x0000000000a987ab in WorldSession::Update (this=0x7fffb38f8c00, diff=<value optimized out>, updater=...) at /home/BGWTLK/sources/src/server/game/Server/WorldSession.cpp:287
#8  0x0000000000b901bc in World::UpdateSessions (this=0x7ffff0dd0808, diff=<value optimized out>) at /home/BGWTLK/sources/src/server/game/World/World.cpp:2560
#9  0x0000000000b972ff in World::Update (this=0x7ffff0dd0808, diff=112) at /home/BGWTLK/sources/src/server/game/World/World.cpp:1948
#10 0x0000000000786d46 in WorldRunnable::run (this=<value optimized out>) at /home/BGWTLK/sources/src/server/worldserver/WorldThread/WorldRunnable.cpp:59
#11 0x0000000000cbccfa in ACE_Based::Thread::ThreadTask (param=0x7fffb18caa00) at /home/BGWTLK/sources/src/server/shared/Threading/Threading.cpp:183
#12 0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
#13 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
#14 0x0000000000000000 in ?? ()
#0  __distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:79
       __n = 1
#1  distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:114
No locals.
#2  size (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_list.h:805
No locals.
#3  Group::GetMembersCount (this=<value optimized out>) at /home/BGWTLK/sources/src/server/game/Groups/Group.cpp:1921
No locals.
#4  0x000000000086b300 in Player::UninviteFromGroup (this=<value optimized out>) at /home/BGWTLK/sources/src/server/game/Entities/Player/Player.cpp:2936
       group = 0x7fffb18caa00
#5  0x0000000000a93baf in WorldSession::LogoutPlayer (this=0x7fffb38f8c00, Save=true) at /home/BGWTLK/sources/src/server/game/Server/WorldSession.cpp:486
       _map = <value optimized out>
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 7871090017362247687, _wpos = 18446744073699066913, _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x4eca5b17 <Address 0x4eca5b17 out of bounds>, _M_finish = 0x7fffd67feae0 "", _M_end_of_storage = 0x7fffb38f8c00 "\215\376\247N"}}, <No data fields>}}, m_opcode = 19}
#6  0x0000000000ab4e12 in WorldSession::HandleLogoutRequestOpcode (this=0x7fffb38f8c00) at /home/BGWTLK/sources/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp:400
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, _wpos = 5, _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffb24d0b70 "", _M_finish = 0x7fffb24d0b75 "\177", _M_end_of_storage = 0x7fffb24d0b75 "\177"}}, <No data fields>}}, m_opcode = 76}
       reason = <value optimized out>
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, _wpos = 18, _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffb11d06a0 "", _M_finish = 0x7fffb11d06b2 "", _M_end_of_storage = 0x7fffb11d06b7 ""}}, <No data fields>}}, m_opcode = 47355}
#7  0x0000000000a987ab in WorldSession::Update (this=0x7fffb38f8c00, diff=<value optimized out>, updater=...) at /home/BGWTLK/sources/src/server/game/Server/WorldSession.cpp:287
       packet = 0x7fffc6ed12b0
#8  0x0000000000b901bc in World::UpdateSessions (this=0x7ffff0dd0808, diff=<value optimized out>) at /home/BGWTLK/sources/src/server/game/World/World.cpp:2560
       pSession = 0x7fffb38f8c00
       updater = {<PacketFilter> = {_vptr.PacketFilter = 0x11f81b0, m_pSession = 0x7fffb38f8c00}, <No data fields>}
       sess = <value optimized out>
#9  0x0000000000b972ff in World::Update (this=0x7ffff0dd0808, diff=112) at /home/BGWTLK/sources/src/server/game/World/World.cpp:1948
No locals.
#10 0x0000000000786d46 in WorldRunnable::run (this=<value optimized out>) at /home/BGWTLK/sources/src/server/worldserver/WorldThread/WorldRunnable.cpp:59
       diff = 112
       realCurrTime = <value optimized out>
       realPrevTime = <value optimized out>
       prevSleepTime = 50
#11 0x0000000000cbccfa in ACE_Based::Thread::ThreadTask (param=0x7fffb18caa00) at /home/BGWTLK/sources/src/server/shared/Threading/Threading.cpp:183
No locals.
#12 0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#13 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#14 0x0000000000000000 in ?? ()
No symbol table info available.
 15 Thread 0x7fffd23ff700 (LWP 29650)  0x00007ffff5d2cf23 in epoll_wait () from /lib/libc.so.6
 14 Thread 0x7fffd33ff700 (LWP 29649)  0x00007ffff5d2cf23 in epoll_wait () from /lib/libc.so.6
 13 Thread 0x7fffd43fe700 (LWP 29648)  0x00007ffff5fd836d in nanosleep () from /lib/libpthread.so.0
 11 Thread 0x7fffd5ffe700 (LWP 29646)  0x00007ffff5d252c3 in select () from /lib/libc.so.6
* 10 Thread 0x7fffd67ff700 (LWP 29645)  __distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:79
 9 Thread 0x7fffd93ff700 (LWP 29644)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 8 Thread 0x7fffeebff700 (LWP 29633)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 7 Thread 0x7fffefbff700 (LWP 29631)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 6 Thread 0x7ffff0bff700 (LWP 29629)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 5 Thread 0x7ffff23ff700 (LWP 29618)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 4 Thread 0x7ffff33ff700 (LWP 29617)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 3 Thread 0x7ffff43ff700 (LWP 29616)  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
 1 Thread 0x7ffff7fdd720 (LWP 29612)  0x00007ffff5fd1285 in pthread_join () from /lib/libpthread.so.0

Thread 15 (Thread 0x7fffd23ff700 (LWP 29650)):
#0  0x00007ffff5d2cf23 in epoll_wait () from /lib/libc.so.6
No symbol table info available.
#1  0x00007ffff7672469 in ACE_Dev_Poll_Reactor::work_pending_i (this=0x7fffd9430440, max_wait_time=0x7fffd23fee00) at ../../ace/Dev_Poll_Reactor.cpp:960
       timer_buf = {static zero = {static zero = <same as static member of an already seen type>, static max_time = {static zero = <same as static member of an already seen type>, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 0, tv_usec = 0}}, tv_ = {tv_sec = 0, tv_usec = 0}}, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 0, tv_usec = 9441}}
       this_timeout = <value optimized out>
       nfds = <value optimized out>
#2  0x00007ffff7675711 in ACE_Dev_Poll_Reactor::handle_events_i (this=0x7fffd9430440, max_wait_time=0x7fffd23fee00, guard=...) at ../../ace/Dev_Poll_Reactor.cpp:1030
       result = <value optimized out>
#3  0x00007ffff76758fe in ACE_Dev_Poll_Reactor::handle_events (this=0x7fffd9430440, max_wait_time=0x7fffd23fee00) at ../../ace/Dev_Poll_Reactor.cpp:1012
       countdown = {<ACE_Copy_Disabled> = {<No data fields>}, max_wait_time_ = 0x7fffd23fee00, start_time_ = {static zero = {static zero = <same as static member of an already seen type>, static max_time = {static zero = <same as static member of an already seen type>, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 0, tv_usec = 0}}, tv_ = {tv_sec = 0, tv_usec = 0}}, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 1321884439, tv_usec = 126986}}, stopped_ = false}
       guard = {token_ = @0x7fffd9430468, owner_ = 1}
       result = -1
#4  0x00007ffff76cbf3d in ACE_Reactor::run_reactor_event_loop (this=0x7fffd6a37c60, tv=..., eh=0) at ../../ace/Reactor.cpp:271
       result = 1
#5  0x0000000000aea9c6 in ReactorRunnable::svc() ()
No symbol table info available.
#6  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7fffdeee3f40
       svc_status = <value optimized out>
#7  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7fffded3ba00) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#8  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#10 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 14 (Thread 0x7fffd33ff700 (LWP 29649)):
#0  0x00007ffff5d2cf23 in epoll_wait () from /lib/libc.so.6
No symbol table info available.
#1  0x00007ffff7672469 in ACE_Dev_Poll_Reactor::work_pending_i (this=0x7fffd94306c0, max_wait_time=0x7fffd33fee00) at ../../ace/Dev_Poll_Reactor.cpp:960
       timer_buf = {static zero = {static zero = <same as static member of an already seen type>, static max_time = {static zero = <same as static member of an already seen type>, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 0, tv_usec = 0}}, tv_ = {tv_sec = 0, tv_usec = 0}}, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 0, tv_usec = 9999}}
       this_timeout = <value optimized out>
       nfds = <value optimized out>
#2  0x00007ffff7675711 in ACE_Dev_Poll_Reactor::handle_events_i (this=0x7fffd94306c0, max_wait_time=0x7fffd33fee00, guard=...) at ../../ace/Dev_Poll_Reactor.cpp:1030
       result = <value optimized out>
#3  0x00007ffff76758fe in ACE_Dev_Poll_Reactor::handle_events (this=0x7fffd94306c0, max_wait_time=0x7fffd33fee00) at ../../ace/Dev_Poll_Reactor.cpp:1012
       countdown = {<ACE_Copy_Disabled> = {<No data fields>}, max_wait_time_ = 0x7fffd33fee00, start_time_ = {static zero = {static zero = <same as static member of an already seen type>, static max_time = {static zero = <same as static member of an already seen type>, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 0, tv_usec = 0}}, tv_ = {tv_sec = 0, tv_usec = 0}}, static max_time = <same as static member of an already seen type>, tv_ = {tv_sec = 1321884439, tv_usec = 120941}}, stopped_ = false}
       guard = {token_ = @0x7fffd94306e8, owner_ = 1}
       result = -1
#4  0x00007ffff76cbf3d in ACE_Reactor::run_reactor_event_loop (this=0x7fffd6a37c20, tv=..., eh=0) at ../../ace/Reactor.cpp:271
       result = -554811720
#5  0x0000000000aea9c6 in ReactorRunnable::svc() ()
No symbol table info available.
#6  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7fffdeee3e08
       svc_status = <value optimized out>
#7  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7fffded3ba60) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#8  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#10 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 13 (Thread 0x7fffd43fe700 (LWP 29648)):
#0  0x00007ffff5fd836d in nanosleep () from /lib/libpthread.so.0
No symbol table info available.
#1  0x0000000000cbc9d7 in sleep (msecs=<value optimized out>) at /usr/local/include/ace/OS_NS_unistd.inl:951
       rqtp = {tv_sec = 1, tv_nsec = 0}
#2  ACE_Based::Thread::Sleep (msecs=<value optimized out>) at /home/BGWTLK/sources/src/server/shared/Threading/Threading.cpp:231
No locals.
#3  0x000000000078cc59 in FreezeDetectorRunnable::run (this=0x7fffd6a39880) at /home/BGWTLK/sources/src/server/worldserver/Master.cpp:93
       curtime = 59899477
       __FUNCTION__ = "run"
#4  0x0000000000cbccfa in ACE_Based::Thread::ThreadTask (param=0x7fffd43fcd90) at /home/BGWTLK/sources/src/server/shared/Threading/Threading.cpp:183
No locals.
#5  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#6  0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#7  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 11 (Thread 0x7fffd5ffe700 (LWP 29646)):
#0  0x00007ffff5d252c3 in select () from /lib/libc.so.6
No symbol table info available.
#1  0x00007ffff7980490 in ?? () from /lib/libreadline.so.5
No symbol table info available.
#2  0x00007ffff79806ee in rl_read_key () from /lib/libreadline.so.5
No symbol table info available.
#3  0x00007ffff796d69f in readline_internal_char () from /lib/libreadline.so.5
No symbol table info available.
#4  0x00007ffff796db65 in readline () from /lib/libreadline.so.5
No symbol table info available.
#5  0x000000000077d3d5 in CliRunnable::run (this=<value optimized out>) at /home/BGWTLK/sources/src/server/worldserver/CommandLine/CliRunnable.cpp:589
       command_str = 0x7fffdeaf3ff0 "P\006\033\001"
#6  0x0000000000cbccfa in ACE_Based::Thread::ThreadTask (param=0x1) at /home/BGWTLK/sources/src/server/shared/Threading/Threading.cpp:183
No locals.
#7  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8  0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#9  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 10 (Thread 0x7fffd67ff700 (LWP 29645)):
#0  __distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:79
       __n = 1
#1  distance<std::_List_const_iterator<Group::MemberSlot> > (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:114
No locals.
#2  size (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_list.h:805
No locals.
#3  Group::GetMembersCount (this=<value optimized out>) at /home/BGWTLK/sources/src/server/game/Groups/Group.cpp:1921
No locals.
#4  0x000000000086b300 in Player::UninviteFromGroup (this=<value optimized out>) at /home/BGWTLK/sources/src/server/game/Entities/Player/Player.cpp:2936
       group = 0x7fffb18caa00
#5  0x0000000000a93baf in WorldSession::LogoutPlayer (this=0x7fffb38f8c00, Save=true) at /home/BGWTLK/sources/src/server/game/Server/WorldSession.cpp:486
       _map = <value optimized out>
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 7871090017362247687, _wpos = 18446744073699066913, _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x4eca5b17 <Address 0x4eca5b17 out of bounds>, _M_finish = 0x7fffd67feae0 "", _M_end_of_storage = 0x7fffb38f8c00 "\215\376\247N"}}, <No data fields>}}, m_opcode = 19}
#6  0x0000000000ab4e12 in WorldSession::HandleLogoutRequestOpcode (this=0x7fffb38f8c00) at /home/BGWTLK/sources/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp:400
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, _wpos = 5, _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffb24d0b70 "", _M_finish = 0x7fffb24d0b75 "\177", _M_end_of_storage = 0x7fffb24d0b75 "\177"}}, <No data fields>}}, m_opcode = 76}
       reason = <value optimized out>
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, _wpos = 18, _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffb11d06a0 "", _M_finish = 0x7fffb11d06b2 "", _M_end_of_storage = 0x7fffb11d06b7 ""}}, <No data fields>}}, m_opcode = 47355}
#7  0x0000000000a987ab in WorldSession::Update (this=0x7fffb38f8c00, diff=<value optimized out>, updater=...) at /home/BGWTLK/sources/src/server/game/Server/WorldSession.cpp:287
       packet = 0x7fffc6ed12b0
#8  0x0000000000b901bc in World::UpdateSessions (this=0x7ffff0dd0808, diff=<value optimized out>) at /home/BGWTLK/sources/src/server/game/World/World.cpp:2560
       pSession = 0x7fffb38f8c00
       updater = {<PacketFilter> = {_vptr.PacketFilter = 0x11f81b0, m_pSession = 0x7fffb38f8c00}, <No data fields>}
       sess = <value optimized out>
#9  0x0000000000b972ff in World::Update (this=0x7ffff0dd0808, diff=112) at /home/BGWTLK/sources/src/server/game/World/World.cpp:1948
No locals.
#10 0x0000000000786d46 in WorldRunnable::run (this=<value optimized out>) at /home/BGWTLK/sources/src/server/worldserver/WorldThread/WorldRunnable.cpp:59
       diff = 112
       realCurrTime = <value optimized out>
       realPrevTime = <value optimized out>
       prevSleepTime = 50
#11 0x0000000000cbccfa in ACE_Based::Thread::ThreadTask (param=0x7fffb18caa00) at /home/BGWTLK/sources/src/server/shared/Threading/Threading.cpp:183
No locals.
#12 0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#13 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#14 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 9 (Thread 0x7fffd93ff700 (LWP 29644)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7fffe1f00984, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140736176972096, tv_nsec = -3004356276611062784}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7fffe1f00984, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7fffe1f00900, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7fffe1f00900, first_item=@0x7fffd93fee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7fffe1f00950, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cbe025 in DelayExecutor::svc (this=0x7fffe1ee4640) at /home/BGWTLK/sources/src/server/shared/Threading/DelayExecutor.cpp:47
       rq = 0x7fffb40d8ca0
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7fffe1ee4640
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7fffded3bbe0) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 8 (Thread 0x7fffeebff700 (LWP 29633)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7ffff440d484, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140736194774032, tv_nsec = 140737344335558}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7ffff440d484, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7ffff440d400, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7ffff440d400, first_item=@0x7fffeebfee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7ffff440d450, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cc2740 in DatabaseWorker::svc (this=0x7ffff0f736c0) at /home/BGWTLK/sources/src/server/shared/Database/DatabaseWorker.cpp:40
No locals.
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7ffff0f736c0
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7ffff0fb2040) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 7 (Thread 0x7fffefbff700 (LWP 29631)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7ffff440d484, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140737299643392, tv_nsec = 140736183926784}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7ffff440d484, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7ffff440d400, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7ffff440d400, first_item=@0x7fffefbfee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7ffff440d450, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cc2740 in DatabaseWorker::svc (this=0x7ffff0f733c0) at /home/BGWTLK/sources/src/server/shared/Database/DatabaseWorker.cpp:40
No locals.
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7ffff0f733c0
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7ffff0e9aee0) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 6 (Thread 0x7ffff0bff700 (LWP 29629)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7ffff440d484, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140737299642976, tv_nsec = 140736372670464}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7ffff440d484, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7ffff440d400, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7ffff440d400, first_item=@0x7ffff0bfee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7ffff440d450, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cc2740 in DatabaseWorker::svc (this=0x7ffff0f730c0) at /home/BGWTLK/sources/src/server/shared/Database/DatabaseWorker.cpp:40
No locals.
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7ffff0f730c0
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7ffff0e9adc0) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 5 (Thread 0x7ffff23ff700 (LWP 29618)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7ffff440d384, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140737299640592, tv_nsec = 140736360087552}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7ffff440d384, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7ffff440d300, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7ffff440d300, first_item=@0x7ffff23fee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7ffff440d350, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cc2740 in DatabaseWorker::svc (this=0x7ffff4417740) at /home/BGWTLK/sources/src/server/shared/Database/DatabaseWorker.cpp:40
No locals.
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7ffff4417740
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7ffff4567400) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 4 (Thread 0x7ffff33ff700 (LWP 29617)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7ffff440d384, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140737299643600, tv_nsec = 140736175538176}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7ffff440d384, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7ffff440d300, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7ffff440d300, first_item=@0x7ffff33fee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7ffff440d350, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cc2740 in DatabaseWorker::svc (this=0x7ffff44169c0) at /home/BGWTLK/sources/src/server/shared/Database/DatabaseWorker.cpp:40
No locals.
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7ffff44169c0
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7ffff4413ca0) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 3 (Thread 0x7ffff43ff700 (LWP 29616)):
#0  0x00007ffff5fd4a9c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff766238d in cond_timedwait (this=0x7ffff440d284, mutex=..., abstime=<value optimized out>) at ../../ace/OS_NS_Thread.inl:362
       result = <value optimized out>
       ts = {tv_sec = 140737299643392, tv_nsec = 140736364281856}
#2  ACE_Condition_Thread_Mutex::wait (this=0x7ffff440d284, mutex=..., abstime=<value optimized out>) at ../../ace/Condition_Thread_Mutex.cpp:100
No locals.
#3  0x00000000007831ab in ACE_Message_Queue<ACE_MT_SYNCH>::wait_not_empty_cond (this=0x7ffff440d200, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1742
       result = <value optimized out>
#4  0x00000000007841a9 in ACE_Message_Queue<ACE_MT_SYNCH>::dequeue_head (this=0x7ffff440d200, first_item=@0x7ffff43fee18, timeout=0x0) at /usr/local/include/ace/Message_Queue_T.cpp:1910
       ace_mon = {lock_ = 0x7ffff440d250, owner_ = 0}
#5  0x00007ffff7648485 in ACE_Activation_Queue::dequeue (this=<value optimized out>, tv=0xfffffffffffffe00) at ../../ace/Activation_Queue.cpp:91
       mb = 0x0
#6  0x0000000000cc2740 in DatabaseWorker::svc (this=0x7ffff4416600) at /home/BGWTLK/sources/src/server/shared/Database/DatabaseWorker.cpp:40
No locals.
#7  0x00007ffff76f0f37 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275
       t = 0x7ffff4416600
       svc_status = <value optimized out>
#8  0x00007ffff76f25e5 in ACE_Thread_Adapter::invoke (this=0x7ffff4413c40) at ../../ace/Thread_Adapter.cpp:98
       exit_hook_instance = <value optimized out>
       exit_hook_maybe = {instance_ = 0x0}
       exit_hook_ptr = <value optimized out>
#9  0x00007ffff5fd0971 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#10 0x00007ffff5d2c92d in clone () from /lib/libc.so.6
No symbol table info available.
#11 0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 0x7ffff7fdd720 (LWP 29612)):
#0  0x00007ffff5fd1285 in pthread_join () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00007ffff76f4dab in thr_join (this=0x7ffff44303c0, task=0x7fffdeee3e08) at ../../ace/OS_NS_Thread.inl:2803
       result = -196934720
#2  join (this=0x7ffff44303c0, task=0x7fffdeee3e08) at ../../ace/Thread.inl:137
No locals.
#3  ACE_Thread_Manager::wait_task (this=0x7ffff44303c0, task=0x7fffdeee3e08) at ../../ace/Thread_Manager.cpp:1797
       i = 0
       copy_count = 1
       result = <value optimized out>
#4  0x0000000000ae8e70 in Wait (this=0x7fffd6a3b1c8) at /home/BGWTLK/sources/src/server/game/Server/WorldSocketMgr.cpp:103
No locals.
#5  WorldSocketMgr::Wait (this=0x7fffd6a3b1c8) at /home/BGWTLK/sources/src/server/game/Server/WorldSocketMgr.cpp:315
       i = 1
#6  0x000000000078c2c3 in Master::Run (this=0x7ffff44111c8) at /home/BGWTLK/sources/src/server/worldserver/Master.cpp:279
       seed1 = {_bn = 0x7ffff44121c0, _array = 0x0}
       SignalINT = {<Trinity::SignalHandler> = {<ACE_Event_Handler> = {_vptr.ACE_Event_Handler = 0x11b2eb0, reference_count_ = {value_ = 1, static increment_fn_ = 0x7ffff76595a0 <(anonymous namespace)::multi_cpu_increment(long volatile*)>, static decrement_fn_ = 0x7ffff76595b0 <(anonymous namespace)::multi_cpu_decrement(long volatile*)>, static exchange_fn_ = 0x7ffff76595d0 <(anonymous namespace)::multi_cpu_exchange(long volatile*, long)>, static exchange_add_fn_ = 0x7ffff76595e0 <(anonymous namespace)::multi_cpu_exchange_add(long volatile*, long)>}, priority_ = 0, reactor_ = 0x0, reference_counting_policy_ = {<ACE_Event_Handler::Policy> = {_vptr.Policy = 0x7ffff7947530}, value_ = ACE_Event_Handler::Reference_Counting_Policy::DISABLED}}, <No data fields>}, <No data fields>}
       SignalTERM = {<Trinity::SignalHandler> = {<ACE_Event_Handler> = {_vptr.ACE_Event_Handler = 0x11b2eb0, reference_count_ = {value_ = 1, static increment_fn_ = 0x7ffff76595a0 <(anonymous namespace)::multi_cpu_increment(long volatile*)>, static decrement_fn_ = 0x7ffff76595b0 <(anonymous namespace)::multi_cpu_decrement(long volatile*)>, static exchange_fn_ = 0x7ffff76595d0 <(anonymous namespace)::multi_cpu_exchange(long volatile*, long)>, static exchange_add_fn_ = 0x7ffff76595e0 <(anonymous namespace)::multi_cpu_exchange_add(long volatile*, long)>}, priority_ = 0, reactor_ = 0x0, reference_counting_policy_ = {<ACE_Event_Handler::Policy> = {_vptr.Policy = 0x7ffff7947530}, value_ = ACE_Event_Handler::Reference_Counting_Policy::DISABLED}}, <No data fields>}, <No data fields>}
       Handler = {_vptr.ACE_Sig_Handler = 0x173d0b0, static sig_pending_ = 0, static signal_handlers_ = {0x0, 0x0, 0x7fffffffe100, 0x0 <repeats 12 times>, 0x7fffffffe0d0, 0x0 <repeats 49 times>}}
       world_thread = {m_iThreadId = 140736792098560, m_hThreadHandle = 140736792098560, m_task = 0x7fffdda2fec0, static m_ThreadStorage = {_vptr.ACE_TSS = 0x123ca70, keylock_ = {lock_ = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, removed_ = false}, once_ = false, key_ = 0}, static m_TpEnum = {m_priority = {0, 0, 0, 0, 0, 0, 0}}}
       rar_thread = {m_iThreadId = 140736762738432, m_hThreadHandle = 140736762738432, m_task = 0x7fffd6a37b60, static m_ThreadStorage = {_vptr.ACE_TSS = 0x123ca70, keylock_ = {lock_ = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, removed_ = false}, once_ = false, key_ = 0}, static m_TpEnum = {m_priority = {0, 0, 0, 0, 0, 0, 0}}}
       cliThread = 0x7fffd6a37b40
       soap_thread = 0x0
       bind_ip = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffd6a37bf8 "0.0.0.0"}}
       pidfile = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff4409508 "core.pid"}}
       wsport = 8086
#7  0x00007ffff5c64d8e in __libc_start_main () from /lib/libc.so.6
No symbol table info available.
#8  0x000000000077caf9 in _start ()
No symbol table info available.

 

Edited by OneB1t

Share this post


Link to post
Share on other sites

To, že první příklad vyřešíš takto ti je jasný?

 

#include <iostream>

using namespace std;

int main(int argc, char* argv[]) {
 int* a = new int;
 *a = 8;
 cout << a << " " << *a << endl;
 delete a, a = NULL;
 if (a) {
   cout << a << " " << *a << endl;
 }
 return 0;
}

 

Tady máš řešení toho tvého druhého problému. Přes reference.

 

#include <iostream>

using namespace std;

int main(int argc, char* argv[]) {
 int* a = new int;
 int*& b = a;
 *a = 8;
 cout << a << " a: " << *a << endl;
 cout << a << " b: " << *b << endl;
 delete a, a = NULL;
 if (a) {
   cout << a << " a: " << *a << endl;
 }
 if (b ) {
   cout << b << " b: " << *b << endl;
 }
 return 0;
}

  • Upvote 1

Share this post


Link to post
Share on other sites

jasny, to prvni byla jen ukazka, ze samotnej delete nestaci, jeste je potreba nastavit ukazatel na NULL. V podstate jen ilustrovalo kdyz to smazes, ale neprepises ukazatel, co se stane.

 

to druhy je moc pekny... teda reference na ukazatel ... tuhle konstrukci jsem snad v zivote nevidel :blink: fuj osklive, zlata java :D

 

edit: uz se v tom motam :D

Edited by ariczek

Share this post


Link to post
Share on other sites

no dobry ale to znamena prepsat to uplne na vsech mistech ne? = silena prace

 

Proto je lepší takovýhle věci používat hned při psaní a ne je dělat dodatečně. Bohužel pokud to chceš vyřešit nic jiného ti nezbude.

Share this post


Link to post
Share on other sites

smarna to musi jit nejak inteligentne vyresit navic nikomu jinymu nez me se to nedeje nemuze to zpusobovat jeste neco jinyho (nastaveni kompilatoru, starsi ACE, etc..)?

Share this post


Link to post
Share on other sites

smarna to musi jit nejak inteligentne vyresit navic nikomu jinymu nez me se to nedeje nemuze to zpusobovat jeste neco jinyho (nastaveni kompilatoru, starsi ACE, etc..)?

 

Já pořád nevím, co pořádně máš za problém. Každopádně pokud máš dangling pointery, tak jiné řešení neexistuje a když si myslíš, že existuje nějaké inteligentní řešení, vymysli ho tedy a použij.

Share this post


Link to post
Share on other sites

Sice se tu řeší mrtvý pahýly kopií ukazatelů, ale přidám taky trochu do mlýna, ikdyž to vezmu oklikou a úplně jiným směrem.

 

Mě se stávalo naprosto běžně (na TC2 s pravidelností západu slunce), že to padalo na různě blbě zvrstvených podmínkách. Budu to demonstrovat na obsahu metod příkazů:

if(GetSession()->GetPlayer())
{ ... }

Fungovalo to, ale když session neexistovala (třeba konzole žádnou session nemá), tak to padlo jednoduše proto, protože na základě NULL session to nemůže nikdy získat pointer hráče, žejo. Mohlo by, ale způsob ošetření třídy neznám. Možná to chce počítat v každém případě s NULL daty takovým způsobem (a všude), aby si s tím aplikace poradila. Co třeba throw / try / catch? http://www.builder.cz/art/cpp/cpp_vyjimky.html Nemám šajna, jestli se v myšlenkách ubírám správným směrem.

 

Ale zpět k příkladu v metodách příkazů. Řešením bylo boďto zakázat příkaz z konzole(nesouvisí s tématem), nebo místo kódu výše použít následující:

if(GetSession())
{
   if(GetSession()->GetPlayer())
   {
       // code...
   }
}

Není to sice dokonalý, ale pro daný účel dostačující. Třeba je kámen úrazu v něčem podobným. Neošetřená vyjímka, atp... Těžko ale soudit, OneB1tovu chybu jsem do podrobna nestudoval.

 

 

EDIT: ad SneakerXZ - Smart pointery: myslím že se v core na některých místech používají. Ruku do ohně za OC nedám, za MaNGOS možná jen prstíček. :D

Edited by Wolf Officious

Share this post


Link to post
Share on other sites

add Smart pointers...

 

Bud ArcEmu, nebo Aspire Hearthstone par let zpatky na ne s velkou slavou presli...

o par tydnu/mesicu pozdeji potichu revertovali zpet, protoze emul bezel na smart pointerech vyrazne pomaleji - aspon co jsem tenkrat pochytil.

 

ale treba to tenkrat jen blbe pouzili :)

 

add vyjimky...

 

musel bys handlovat signaly od OS... u nekterych to lze, u nekterych ne :)

http://www.cplusplus.com/reference/clibrary/csignal/signal/

kuprikladu se tim necha obejit kill na linuxu :) kill -n 9 už ovšem ne.

Edited by ariczek

Share this post


Link to post
Share on other sites

if(GetSession())
{
   if(GetSession()->GetPlayer())
   {
       // code...
   }
}

 

Proč to psát takhle? Daleko lepší je to napsat následovně.

 

if (GetSession() && GetSession()->GetPlayer())
{
   // code...
}

 

Jinak smart pointery nějakou režii samozřejmě přidají, ale myslím si, že je zanedbatelná.

Share this post


Link to post
Share on other sites

Já pořád nevím, co pořádně máš za problém. Každopádně pokud máš dangling pointery, tak jiné řešení neexistuje a když si myslíš, že existuje nějaké inteligentní řešení, vymysli ho tedy a použij.

no to ja taky poradne nevim proto sem se ariczka ptal na ten crash a ten udelal topic o pointerech

 

jinak zkousel sem vcera uplne cistou revizi TC2 nejnovejsi z githubu (https://github.com/TrinityCore/TrinityCore/commit/1f70fd2851c52d7bbfeb58af8180cf3ad39af290) do 400 online rock stable od 500 do 900 to proste pada kazdou hodinu..

 

ted treba nejcerstvejsi crash

http://www.oneb1t.cz/paste/index.php/view/61583010

(bez debug rezimu nema to v nem cenu kompilovat informaci o tom crashi mam hromadu z poslednich 2 tejdnu...)

 

kdyby jste to nekdo vyresil a poslal mi k tomu nejakej navod pro truhliky pripadne rovnou patch tak bych byl moc stastnej

Edited by OneB1t

Share this post


Link to post
Share on other sites

OneB1t: covece, kdybys vzal jedno z minimalne 3 reseni co se tu uz objevily... a aplikoval, tak uz ses tejden bez crashu :)

 

necekej ze ti to nekdo hodi na stribrnym podnose :)

Share this post


Link to post
Share on other sites

Je ale divný, že tendle problém máš jenom ty, že o tom nikde na TC neni ani zmíňka... :o

premyslej proc asi

nepouziva čiste core od TC,ale ma vlastni upravy + dalsi custom veci....

Share this post


Link to post
Share on other sites

jinak zkousel sem vcera uplne cistou revizi TC2 nejnovejsi z githubu (https://github.com/TrinityCore/TrinityCore/commit/1f70fd2851c52d7bbfeb58af8180cf3ad39af290) do 400 online rock stable od 500 do 900 to proste pada kazdou hodinu..

premyslej proc asi

nepouziva čiste core od TC,ale ma vlastni upravy + dalsi custom veci....

 

tim to nebude :) spis bych rek mozna neco v konfigu ? ... instant logout napriklad ? :D proste neco, co vetsina serveru s 400+ hracema nepouziva :)

Share this post


Link to post
Share on other sites

if(GetSession())
{
   if(GetSession()->GetPlayer())
   {
       // code...
   }
}

 

Proč to psát takhle? Daleko lepší je to napsat následovně.

 

if (GetSession() && GetSession()->GetPlayer())
{
   // code...
}

....

Protože tomu nevěřím tolik, jak bych chtěl.

 

tim to nebude :) spis bych rek mozna neco v konfigu ? ... instant logout napriklad ? :D proste neco, co vetsina serveru s 400+ hracema nepouziva :)

To můžou ale klidně být i načatý RAMky, nebo kixlý CPU.. Jestli tam má AMD, tak ty jsou tím nechvalně pověstný. Mám s tím dost drsnou zkušenost. Jak s AMD, tak s RAMkama. Vadný bloky a máš vymalováno. To bude padat pořát.

 

V první řadě bych udělal diagnostiku RAM a prověřil tak jejich spolehlivost. U mýho serveru (DELL) mám na to v BIOSu přímo utilitu, která to prověřuje. Ale jde to udělat třeba i při instalaci ubuntu (nebo i jinýho linuxu).. Myslím že ten nástroj je dostupnej i normálně v tom linuxu, jenom si nepamatuju, jak se jmenuje.

Edited by Wolf Officious

Share this post


Link to post
Share on other sites

Tomu nevěřím tolik, jak bych chtěl.

 

tak never :) chybi znalosti funkce prekladace - podminky v if se vyhodnocuji zleva, pri zretezeni pres && - pokud jedna neplati, vyhodnoti se cely jako neplati a dalsi uz se neprovadeji :)

 

ty zapisy co napsal SneakerXZ jsou zcela totožné :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×