Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Linux Servers

Support::Linux Servers Support forum for Linux EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 12-04-2012, 08:42 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,742
Default

If you have a core.xxxxx (xxxxx is numbers) file in the directory where world is then you can open it with gdb and get a trace of where the crash happened.

In that directory type gdb world core.xxxx, then type bt after it loads and post that stack trace.

If there is no core file then you can run world in gdb by navigating to the directory where it is, typing gdb world, then run once it starts. If it crashes type bt to get the stack trace.
Reply With Quote
  #2  
Old 12-04-2012, 09:09 PM
revloc02c's Avatar
revloc02c
Hill Giant
 
Join Date: Aug 2010
Location: UT
Posts: 215
Default

Wow, gdb, who knew. I had to go find it and install it, but now I've got it to use. Thanks!

There was not core file of any sort that you mentioned so I ran gdb world.
Code:
eqemu@xxxxxx:~/server$ gdb world
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/eqemu/server/world...done.
(gdb) run
Starting program: /home/eqemu/server/world
[Thread debugging using libthread_db enabled]
[New Thread 0xb7989b70 (LWP 2156)]
[New Thread 0xb7188b70 (LWP 2157)]
[Debug] Starting Log: logs/eqemu_debug_world.log
[Debug] [COMMON__THREADS] Starting TCPServerLoop with thread ID -1214735504
[Debug] [COMMON__THREADS] Starting TCPServerLoop with thread ID -1223128208
[Debug] [WORLD__INIT] Loading server configuration..
[Debug] [WORLD__INIT] Log settings loaded from log.ini
[Debug] [WORLD__INIT] CURRENT_WORLD_VERSION:EQEmulator 0.8.0
[Debug] [WORLD__INIT] Added loginserver eqemulator.net:5998
[Debug] [WORLD__INIT] Connecting to MySQL...
[Status] Starting Log: logs/eqemu_world.log
[Status] Using database 'peq' at localhost:3306
[New Thread 0xb6987b70 (LWP 2158)]
[Debug] [WORLD__INIT] HTTP world service disabled.
[Debug] [WORLD__INIT] Loading variables..
[Debug] [COMMON__THREADS] Starting DBAsyncLoop with thread ID -1231520912
[Debug] [WORLD__INIT] Loading zones..
[Debug] [WORLD__INIT] Clearing groups..
[Debug] [WORLD__INIT] Clearing raids..
[Debug] [WORLD__INIT] Loading items..
[Status] libEMuShareMem.so loaded
[Status] Loading items from database: count=94982

Program received signal SIGSEGV, Segmentation fault.
0xb7a2f8dc in ?? () from /lib/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7a2f8dc in ?? () from /lib/i686/cmov/libc.so.6
#1  0xb7a2f640 in strtol () from /lib/i686/cmov/libc.so.6
#2  0x080e2b9f in atoi (this=0x81ec240, iItemCount=94982, iMaxItemID=154102) at /usr/include/stdlib.h:286
#3  SharedDatabase::DBLoadItems (this=0x81ec240, iItemCount=94982, iMaxItemID=154102) at ../common/shareddb.cpp:950
#4  0x080e3af7 in SharedDatabase::extDBLoadItems (iItemCount=94982, iMaxItemID=154102) at ../common/shareddb.cpp:787
#5  0xb617abac in DLLLoadItems (cbDBLoadItems=0x80e3ad6 <SharedDatabase::extDBLoadItems(int, unsigned int)>, iItemStructSize=1016, iItemCount=0xbffff2bc,
    iMaxItemID=0x81ec66c) at Items.cpp:117
#6  0x080e17ac in SharedDatabase::LoadItems (this=0x81ec240) at ../common/shareddb.cpp:799
#7  0x0809a9b8 in main (argc=1, argv=0xbffff8e4) at net.cpp:291
(gdb)
Reply With Quote
  #3  
Old 12-05-2012, 07:03 PM
revloc02c's Avatar
revloc02c
Hill Giant
 
Join Date: Aug 2010
Location: UT
Posts: 215
Default

Quote:
Originally Posted by revloc02c View Post
Wow, gdb, who knew. I had to go find it and install it, but now I've got it to use. Thanks!
I just realized that I did something here that really bugs me, I accomplished something in the background without explaining how I did it. This is not very helpful for future reference if someone else reads this. So to clear that up here's how I installed gdb on a Debian Linux box:
Code:
apt-get install gdb
Super simple, and easy enough to Google, but it is the principle of it that matters.
Reply With Quote
  #4  
Old 12-05-2012, 10:11 PM
revloc02c's Avatar
revloc02c
Hill Giant
 
Join Date: Aug 2010
Location: UT
Posts: 215
Default

Ok, so I got this same problem again, another Segmentation Fault. So I dived into gdb some more like you said lerxst and sure enough you were right.

In game I have a SQL sproc that adds an item to the db and I didn't do some of the columns right and they were coming out NULL, and it was trying to atoi one of those columns.

Thanks for the help, I would have never tracked that bug down without you.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 05:57 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3