News:

Come Chat with us live! Learn how HERE!

Main Menu

Help in debugging tremulous on opensolaris

Started by scloh, September 12, 2008, 03:24:29 AM

scloh

Hi all,

I got tremulous compiled and then i copied the tremulous.x86 file to a new directory. Created a base directory in that directory and copied a bunch of map files in the base directory. Then I tried to run tremulous.

tremulous first showed up in a small window, played the startup sound and then disappeared as well as making the shell session disappear.

The last lines from stderror are:

--- Common Initialization Complete ---
Opening IP socket: localhost:30720
Hostname: bradosfs2
IP: 192.168.9.5
Started tty console (use +set ttycon 0 to disable)
----- CL_Shutdown -----
Closing SDL audio device...
SDL audio device shut down.
RE_Shutdown( 1 )
-----------------------
Shutdown tty console


There were no error messages reported. Where do we start?

kevlarman

did you copy the 1.1 data into that directory?
Quote from: Asvarox link=topic=8622.msg169333#msg169333Ok let's plan it out. Asva, you are nub, go sit on rets, I will build, you two go feed like hell, you go pwn their asses, and everyone else camp in the hallway, roger?
the dretch bites.
-----
|..d| #
|.@.-##
-----

scloh

Quote from: kevlarman on September 12, 2008, 04:52:12 AM
did you copy the 1.1 data into that directory?

----- FS_Startup -----
Current search path:
/export/home/icttech/.tremulous/base
./base/vms-1.1.0.pk3 (4 files)
./base/ui-sunos-x86.pk3 (13 files)
./base/map-uncreation-1.1.0.pk3 (110 files)
./base/map-tremor-1.1.0.pk3 (45 files)
./base/map-transit-1.1.0.pk3 (135 files)
./base/map-niveus-1.1.0.pk3 (134 files)
./base/map-nexus6-1.1.0.pk3 (151 files)
./base/map-karith-1.1.0.pk3 (118 files)
./base/map-atcs-1.1.0.pk3 (87 files)
./base/map-arachnid2-1.1.0.pk3 (67 files)
./base/data-1.1.0.pk3 (1229 files)
./base

Do I need anything else?

kevlarman

no that looks fine, could you add +set developer 1 to the client's command line?
Quote from: Asvarox link=topic=8622.msg169333#msg169333Ok let's plan it out. Asva, you are nub, go sit on rets, I will build, you two go feed like hell, you go pwn their asses, and everyone else camp in the hallway, roger?
the dretch bites.
-----
|..d| #
|.@.-##
-----

scloh

Quote from: kevlarman on September 12, 2008, 05:13:14 PM
no that looks fine, could you add +set developer 1 to the client's command line?

Sorry for the late reply, long weekend over here in HK. Here are some extra lines that seem to be of interest from stderr.

----- Client Initialization Complete -----
----- R_Init -----
Warning: cvar "r_uifullscreen" given initial values: "1" and "0"
...
----- finished R_Init -----
Can't find gfx/colors/black.tga
...
Can't find vm/ui.map
Couldn't load symbol file: vm/ui.map
ui loaded in 4596672 bytes on the hunk
^3WARNING: sound/misc/menu2.wav is not a 22kHz wav file
Can't find models/splash/splash_screen_2.md3
Can't find models/splash/splash_screen_1.md3
Can't find models/splash/bright_star.tga
Can't find models/splash/bright_star_2.tga
Can't find models/splash/nebula.tga
Can't find models/splash/nebula_2.tga
Can't find ui/credit.menu
Can't find gfx/2d/load_screen.tga
Can't find ui/addfilter.menu
UI menu load time = 410 milli seconds
UI menu load time = 28 milli seconds
UI menu load time = 26 milli seconds
Channel memory manager started
Can't find games/(null)_0.game
Can't find demos/(null)_0.dm_69
...
Channel memory manager started
SCR_PlayCinematic( splash.RoQ )
trFMV::play(), playing splash.RoQ
roq_size>65536||roq_id==0x1084
finished cinematic
Channel memory manager started
S_StartBackgroundTrack( sound/ui/heartbeat.wav, sound/ui/heartbeat.wav )
----- CL_Shutdown -----
...
RE_Shutdown( 1 )


thanks,

scloh.

Bissig

Additionally you could do an "strace" and post the last lines (the last 100 maybe).

Amanieu

Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P

scloh

Quote from: Bissig on September 16, 2008, 05:17:29 AM
Additionally you could do an "strace" and post the last lines (the last 100 maybe).

Last 100 lines:

/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
/1:   ioctl(15, FIONREAD, 0x080431BC)         = 0
/1:   recvfrom(22, 0x0899D240, 16384, 0, 0x08043360, 0x0804335C) Err#11 EAGAIN
Channel memory manager started
/1:   write(2, " C h a n n e l   m e m o".., 31)   = 31
S_StartBackgroundTrack( sound/ui/heartbeat.wav, sound/ui/heartbeat.wav )
/1:   write(2, " S _ S t a r t B a c k g".., 73)   = 73
/1:   open("/export/home/icttech/.tremulous/base/sound/ui/heartbeat.wav", O_RDONLY) Err#2 ENOENT
/1:   open("./base/data-1.1.0.pk3", O_RDONLY)      = 23
/1:   lseek(3, 0x02AD3DBF, SEEK_SET)         = 0x02AD3DBF
/1:   read(3, " P K0102170314\002\0\b\0".., 131072)   = 17897
/1:   lseek(23, 0x025500FE, SEEK_SET)         = 0x025500FE
/1:   fstat64(23, 0x08044B60)            = 0
/1:   fstat64(23, 0x08044A90)            = 0
/1:   ioctl(23, TCGETA, 0x08044B2C)         Err#25 ENOTTY
/1:   read(23, " P K030414\002\0\b\0C680".., 131072)   = 131072
/1:   lseek(23, 0x02550147, SEEK_SET)         = 0x02550147
/1:   read(23, "1C ]05 t13CFD7 MB2 q wAF".., 131072)   = 131072
/1:       Incurred fault #6, FLTBOUNDS  %pc = 0x08168D94
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94
/1:       Received signal #11, SIGSEGV [caught]
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94
/1:   lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
/1:   ioctl(1, TCGETA, 0x0804458C)         = 0
/1:   fstat64(1, 0x080444F0)            = 0
/1:   write(1, " R e c e i v e d   s i g".., 31)   = 31
----- CL_Shutdown -----
/1:   write(2, " - - - - -   C L _ S h u".., 24)   = 24
Channel memory manager started
/1:   write(2, " C h a n n e l   m e m o".., 31)   = 31
Closing SDL audio device...
/1:   write(2, " C l o s i n g   S D L  ".., 28)   = 28
/2:   nanosleep(0xFD80DE88, 0xFD80DE80)      = 0
/2:   lwp_sigmask(SIG_SETMASK, 0xFFBFFEFF, 0x0000FFF7) = 0xFFBFFEFF [0x0000FFFF]
/2:   lwp_exit()
lwp_wait(2, 0x08045360)            = 0
close(21)               = 0
SDL audio device shut down.
write(2, " S D L   a u d i o   d e".., 28)   = 28
RE_Shutdown( 1 )
write(2, " R E _ S h u t d o w n (".., 17)   = 17
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
ioctl(17, _IOWRN('F', 88, 40), 0x08045200)   = 0
ioctl(17, _IOWRN('F', 41, 16), 0x08045220)   = 0
getpid()               = 14147 [14146]
write(15, " i\003\002\001\004\00101".., 96)   = 96
read(15, 0x080453B0, 32)         Err#11 EAGAIN
pollsys(0x12430648, 1, 0x00000000, 0x00000000)   = 1
read(15, "06\0 =\0 +8ED7 L :01\0\0".., 32)   = 32
read(15, "1204 @\002\0  0302\0  03".., 32)   = 32
read(15, "11\0 @\002\0  0302\0  03".., 32)   = 32
read(15, "0101 B\0\0\0\0\001\0\0\0".., 32)   = 32
getpid()               = 14147 [14146]
getpid()               = 14147 [14146]
munmap(0xFE7D8000, 407744)         = 0
close(15)               = 0
mkdir("/export", 0777)            Err#17 EEXIST
mkdir("/export/home", 0777)         Err#17 EEXIST
mkdir("/export/home/icttech", 0777)      Err#17 EEXIST
mkdir("/export/home/icttech/.tremulous", 0777)   Err#17 EEXIST
writing to: /export/home/icttech/.tremulous/servercache.dat
write(2, " w r i t i n g   t o :  ".., 60)   = 60
open("/export/home/icttech/.tremulous/servercache.dat", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 15
fstat64(15, 0x08043CD0)            = 0
fstat64(15, 0x08043C00)            = 0
ioctl(15, TCGETA, 0x08043C9C)         Err#25 ENOTTY
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0".., 119824)   = 119824
close(15)               = 0
-----------------------
write(2, " - - - - - - - - - - - -".., 24)   = 24
_exit(0)

Bissig

I have two guesses:

1. failing SDL sound support
2. file permissions

Did you try Amanieus tip?

scloh

Quote from: Bissig on September 17, 2008, 08:47:25 PM
I have two guesses:

1. failing SDL sound support
2. file permissions

Did you try Amanieus tip?

1. I don't think so...I do hear that initial weee sound when I see the splash screen.
2. Hmm...what is all this stuff? open("/export/home/icttech/.tremulous/base/scripts/reactor.shader", O_RDONLY) Err#2 ENOENT

I see a whole bunch of attempts to read stuff from .tremulous/base but I only have a autogen.cfg file in there.

As for the Amanieus tip, that only saves me from having to background tremulous to prevent it from locking the X terminal. I have had to kill X with Ctrl-Alt-Backspace if I did not put tremulous into the background in the shell. Now I do not have to background it.

Bissig

#10
It seems to fail while writing the servercache.dat

I don't have any clue what's happening there.

Or it's the trouble with these lines:

Quote
/1:   read(23, "1C ]05 t13CFD7 MB2 q wAF".., 131072)   = 131072
/1:       Incurred fault #6, FLTBOUNDS  %pc = 0x08168D94
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94
/1:       Received signal #11, SIGSEGV [caught]
/1:         siginfo: SIGSEGV SEGV_MAPERR addr=0x08168D94

I don't know enough about signals to interprete all that stuff.

What are the file permissions on your tremulous executable?

Amanieu

That means the program is trying to access memory that doesn't exist.
Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P

Rocinante

Quote from: scloh on September 18, 2008, 01:17:44 AM
2. Hmm...what is all this stuff? open("/export/home/icttech/.tremulous/base/scripts/reactor.shader", O_RDONLY) Err#2 ENOENT

Attempting to open a file for reading which doesn't exist - but the segfault is the problem, not this.

Bissig mentions the servercache, but the segfault is before that; right after reading some data from file descriptor 23, which you can see by an earlier open is data-1.1.0.pk3 (the " = 23" in the open call means the file was opened successfully, and made available as file descriptor 23).  So something while it's reading in data-1.1.0.pk3 caused a segfault.  I'm afraid that without attaching a debugger and watching things intently, I can't glean more from the trace output, but then I'm the type that prefers stepping through the code in DDD instead of trying to debug by strace output dumps :>
}MG{Mercenaries Guild
"On my ship, the Rocinante, wheeling through the galaxies, headed for the heart of Cygnus, headlong into mystery." -- Rush, "Cygnus X-1"

Bissig

Idea:

Might you by any chance run out of usable RAM?


scloh

Quote from: Rocinante on September 18, 2008, 06:12:22 AM
Quote from: scloh on September 18, 2008, 01:17:44 AM
2. Hmm...what is all this stuff? open("/export/home/icttech/.tremulous/base/scripts/reactor.shader", O_RDONLY) Err#2 ENOENT

Attempting to open a file for reading which doesn't exist - but the segfault is the problem, not this.

Bissig mentions the servercache, but the segfault is before that; right after reading some data from file descriptor 23, which you can see by an earlier open is data-1.1.0.pk3 (the " = 23" in the open call means the file was opened successfully, and made available as file descriptor 23).  So something while it's reading in data-1.1.0.pk3 caused a segfault.  I'm afraid that without attaching a debugger and watching things intently, I can't glean more from the trace output, but then I'm the type that prefers stepping through the code in DDD instead of trying to debug by strace output dumps :>

Hmm...I wonder if this is one of those gcc abi vs suncc abi things...I could not compile tremulous with suncc.

Amanieu

Run it in gdb and see where it crashes. Then grab a backtrace and a dump of all local vars.
Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P