S_FindName: empty name

Locked
nexus024
Posts: 148
Joined: Fri Oct 06, 2006 7:26 pm

S_FindName: empty name

Post by nexus024 »

I have recently come across a bug that causes all of the clients connected to the server to get disconnected. The bug actually crashes their quake3.exe client and displays "S_FindName empty name." It also only happens right after the timelimit or capturelimit has been met at the end of a map. What is strange though is it can go through the entire map rotation several times without crashing then all of a sudden BOOM. Anyone have any suggestions on how I can track down this elusive bug?
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Re: S_FindName: empty name

Post by ^misantropia^ »

Simple solution?

1. compile a debug build
2. put a breakpoint at the call to Com_Error() in S_FindName()
3. wait for the breakpoint to be triggered
4. print out a stack trace

You'll want to compile (and run) debug DLLs. If the offending call originates from the cgame code and you're using QVMs, you'll see nothing but hex addresses and assembly opcodes further down.
nexus024
Posts: 148
Joined: Fri Oct 06, 2006 7:26 pm

Re: S_FindName: empty name

Post by nexus024 »

All I am running on the server is the game shared object file. So what I will have to do is compile a debug build of the quake3 client-side executable and run it through ddd with that breakpoint and see what turns up?
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Re: S_FindName: empty name

Post by ^misantropia^ »

Nope. Compile yourself a debug client and play, play, play until the bug manifests itself. I suspect you're calling trap_S_RegisterSound() somewhere with an empty string but that is only a hunch.
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Re: S_FindName: empty name

Post by ^misantropia^ »

Heh, did you just edit your post? I could swear it said something different before I typed my reply.
nexus024
Posts: 148
Joined: Fri Oct 06, 2006 7:26 pm

Re: S_FindName: empty name

Post by nexus024 »

Yes, I realized what I should've said and editted it. :)
Locked