源码有bug,有几个函数返回值签名是int,但实现中没有return; 在高版本gcc(大概在gcc 12+)编译时编译会主调插入ud2,使程序运行时触发SIGILL,如: [!] The siroco15 channel 15('ch.15') server has been started successfully. Thread 6 "df_game_r" received signal SIGILL, Illegal instruction. [Switching to Thread 0xd0b75b40 (LWP 2999)] 0xf784b43b in DB_LoadPowerWarStatueRanker__dispatch(int*, int, int, int*) () from /home/neople/dfsvr/neople/game/libfd.so (gdb) bt #0 0xf784b43b in DB_LoadPowerWarStatueRanker__dispatch(int*, int, int, int*) () from /home/neople/dfsvr/neople/game/libfd.so #1 0x083ff5c7 in DBTask::DBProcess(Stream*, int&) () #2 0x083ff23b in DBTask::HandleEvents(MsgQueueMgr::QUEUE_IDX, int&) () #3 0x083ff893 in DBThread::dispatch(void*) () #4 0x08630c3f in ThreadInterface::dispatch_proxy(void*) () #5 0xf7440781 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:448 #6 0xf74d6e78 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/i386/clone3.S:111