I would be worried if I found a strange process on my development PC
(ie:PDM.exe)

> I have no idea what PDM is. None of the functions on the stack are from
> my mod. My mod is compiled with symbols for both client and server.
>
Yes none of those functions are from your Mod code but they, no doubt, are
the result of the calls made by the game engine.

Any Win32 user mode process that calls an API like ... CreateFile()  (which
happens to exist in kernel32.dll) will eventually call a stub function in
NTDLL.dll (the user mode interface to the native NT API) that then results
in a kernel mode call, to service the request, via the file I/O driver, and
then the hall.dll.

So these functions on the stack, so to speak, are from your code. (I assume
you aren't running another app at the same time).

> The symbol files for the engine would be useful. I am not hopefull of
> seeing them though ... Unless I win the big Christmas lotto draw and buy
> a source license :)
 Microsoft has released symbol files for all Win32 images as well as native
NT API.
This is not releasing the source at all and posess little risk to Valve.
Valve should be freindly here I think and give it up.


Read this:
http://www.microsoft.com/mspress/books/sampchap/2345a.asp

Then read this which is more to the point :
http://www.microsoft.com/mspress/books/sampchap/2345b.asp

I think a thread in the game engine is waiting for a kernel object to become
signaled.

At the bottom of the second page that I referenced, it says this:

============================================================================
=====
In reality, the algorithm Microsoft uses is simply the popular "first in,
first out" scheme. The thread that has waited the longest for an object gets
the object. However, actions can occur in the system that alter this
behavior, making it less predictable. This is why Microsoft doesn't
explicitly state how the algorithm works. One such action is a thread
getting suspended. If a thread waits for an object and then the thread is
suspended, the system forgets that the thread is waiting for the object.
This is a feature because there is no reason to schedule a suspended thread.
When the thread is later resumed, the system thinks that the thread just
started waiting on the object.

While you debug a process, all threads within that process are suspended
when breakpoints are hit. So debugging a process makes the "first in, first
out" algorithm highly unpredictable because threads are frequently suspended
and resumed.

============================================================================
======

This scares me. It means that the thread or threads that are suspended, (and
will be woken up, when the object or objects become signaled), under some
conditions, could result in a situation as you describe where the objects
are signaled (or ready) and the thread stalls.

Sorry I can't be of more help.

Something really weird is going on here and I think your code has uncovered
(inadvertantly) this weird phenominon.

This is the type of situation where a coder's code (which has no compile
errors) causes a problem in the underlying OS API's and it is one of the
most frustrating things that can happen.

Bottom line is to step back for a moment .. go over your code from stem to
stern ... look for anything that is not right.

What code has changed since it ran ok ? Look back at your previous code
changes to see if you can get it back to working, then you will have
narrowed it down.

Good luck you will need it.




----- Original Message -----
From: "Codiac" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, December 23, 2003 8:35 PM
Subject: Re: [hlcoders] Registry values for installs and other things


> I have no idea what PDM is. None of the functions on the stack are from
> my mod. My mod is compiled with symbols for both client and server.
>
> Google trolling seems to indicate that WaitForMultipleObjects can be
> linked to race conditions, which seems to be the situation here.
>
> Unfortunately I can't figure out what is causing the race conmdition.
>
> The symbol files for the engine would be useful. I am not hopefull of
> seeing them though ... Unless I win the big Christmas lotto draw and buy
> a source license :)
>
> Jeff.
>
> K. Mike Bradley wrote:
> > Yes debuging is fun eh?
>  >
> > The object now is to find out where to set a break point so that you can
> > single step perhaps into the user mode calls.
> >
> > The wait for multiple objects looks suspicious.
> >
> > I can't tell if these multiple objects (being waited on), are newly
created?
> > Or are failing (hanging) when created.
> >
> > I, alas, am not a mod coder and have only just started looking into the
SDK.
> >
> > What is the PDM process? is this your mod code?
> >
> > You should be able to generate symbols at compile time for the client
dll.
> > I wonder if Valve offers symbols for their part of the code so one may
trace
> > into calls there ???
> >
> >
> > Anyone from Valve have an answer?
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: "Codiac" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Tuesday, December 23, 2003 2:11 AM
> > Subject: Re: [hlcoders] Registry values for installs and other things
> >
> >
> >
> >>Thanks, but it seems like I got the little buggers installed ok :)
> >>
> >>K. Mike Bradley wrote:
> >>
> >> > It's been a while since I set up symbols in Visual studio (VC++) 6
SP5
> >> > but let me know how it goes. I could look up my old notes.
> >> >
> >>
> >>This is what the stack has to say now:
> >>
> >>NTDLL! [EMAIL PROTECTED] + 11 bytes
> >>KERNEL32! [EMAIL PROTECTED] + 158 bytes
> >>USER32! [EMAIL PROTECTED] + 224 bytes
> >>USER32! [EMAIL PROTECTED] + 29 bytes
> >>PDM! 4a00888c()
> >>PDM! 4a008aa5()
> >>PDM! 4a008a29()
> >>KERNEL32! [EMAIL PROTECTED] + 82 bytes
> >>565308ec()
> >>
> >>Still leaves me with no idea wtf is going on :P
> >>
> >>Jeff.
> >>
> >>
> >>_______________________________________________
> >>To unsubscribe, edit your list preferences, or view the list archives,
> >
> > please visit:
> >
> >>http://list.valvesoftware.com/mailman/listinfo/hlcoders
> >>
> >>
> >
> >
> >
> > _______________________________________________
> > To unsubscribe, edit your list preferences, or view the list archives,
please visit:
> > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> >
> >
>
>
> --
>
> Jeff "Codiac" Fearn
> -----------------------------------------------------------------
> Lead Coder, Web Master, Server Administrator for SWARM
> http://swarm.hlgaming.com
>
> Coder for Wizard Wars
> http://www.planethalflife.com/wizardwars/
> -----------------------------------------------------------------
>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to