Orangebox. Yeah, my next move was online debug play, hope I get lucky :)

On 2/04/2011 21:16, Psy_Commando wrote:
You could test the game online compiled in debug, you should get a more precise error or assertion. Remove any breakpoints before :)

You can also put a breakpoint before the purge of that particular vector, and try to see if it crashes at the same position in the vector. Also, check what is actually contained at that particular position in the vector, and in the container object if the pointer's not null. That should give a few more hints.

What version of the codebase are you using by the way ?

On Fri, Apr 1, 2011 at 12:26 AM, joshua simmons <simmons...@gmail.com <mailto:simmons...@gmail.com>> wrote:

    Just a note that memcpy_s doesn't do much other than make your
    code non-portable. You're better off avoiding malloc in the first
    place than using a slightly slower version of it that's just as
    unsafe.

    On Fri, Apr 1, 2011 at 3:14 PM, Maarten De Meyer
    <maar...@off-limits.be <mailto:maar...@off-limits.be>> wrote:

        No, both windows and linux. I suspected it was a valid
        construction. Still, that leaves me out of ideas :P
        ------------------------------------------------------------------------
        From: Adam "amckern" McKern
        Sent: vrijdag 1 april 2011 3:25

        To: Discussion of Half-Life Programming
        Subject: Re: [hlcoders] CUtlVector crash ( screenshake )

        You might want to upgrade to memcpy_s if your windows server
        only (GCC has a dislike to microsoft non ISO code).

        --------
        Owner Nigredo Studios http://www.nigredostudios.com
        <http://www.nigredostudios.com/>

        --- On *Fri, 1/4/11, Tony "omega" Sergi /<omegal...@gmail.com
        <mailto:omegal...@gmail.com>>/* wrote:


            From: Tony "omega" Sergi <omegal...@gmail.com
            <mailto:omegal...@gmail.com>>
            Subject: Re: [hlcoders] CUtlVector crash ( screenshake )
            To: "Discussion of Half-Life Programming"
            <hlcoders@list.valvesoftware.com
            <mailto:hlcoders@list.valvesoftware.com>>
            Cc: "Tony Paloma" <drunkenf...@hotmail.com
            <mailto:drunkenf...@hotmail.com>>
            Received: Friday, 1 April, 2011, 12:10 PM

            It's destructing the container the pointer to your object
            is stored in, not the object itself.
            PurgeAndDelete on the other hand will destroy the object
            itself as well.




            On Fri, Apr 1, 2011 at 4:02 AM, Tony Paloma
            <drunkenf...@hotmail.com
            
<http://au.mc335.mail.yahoo.com/mc/compose?to=drunkenf...@hotmail.com>>
            wrote:

                Your point about #3 does indeed look fishy. I'm not
                sure why they're calling
                the destructor on their own anyways.

                Try this:
                // Retire this shake.
                void *shake = m_ShakeList.Element( nShake );
                m_ShakeList.FastRemove( nShake );
                delete shake;
                continue;

                -----Original Message-----
                From: hlcoders-boun...@list.valvesoftware.com
                
<http://au.mc335.mail.yahoo.com/mc/compose?to=hlcoders-boun...@list.valvesoftware.com>
                [mailto:hlcoders-boun...@list.valvesoftware.com
                
<http://au.mc335.mail.yahoo.com/mc/compose?to=hlcoders-boun...@list.valvesoftware.com>]
                On Behalf Of Maarten De
                Meyer
                Sent: Thursday, March 31, 2011 11:38 AM
                To: Discussion of Half-Life Programming
                Subject: [hlcoders] CUtlVector crash ( screenshake )

                Hi List!

                So, we're finally out there in closed beta. One of the
                most annyoing issues
                is a client side crash. The call stack doesn't say all
                that much, but still:
                it always happens in the Purge command in the
                destructor of
                CUtlVector:

                template< typename T, class A >
                inline CUtlVector<T, A>::~CUtlVector()
                {
                    Purge();
                }

                more precisely, in the CUtlVector< screenshake_t * > .
                [ There's only one of
                those, in CViewEffects ].

                Now, some questions:

                1) any idea why this happens? [ had to ask :D ]
                2) if no, any idea on how to debug?
                3) Is the following normal? :

                // Retire this shake.
                delete m_ShakeList.Element( nShake );
                m_ShakeList.FastRemove( nShake );
                continue;

                where:

                template< typename T, class A >
                void CUtlVector<T, A>::FastRemove( int elem ) {
                    Assert( IsValidIndex(elem) );

                    Destruct( &Element(elem) );
                    if (m_Size > 0)
                    {
                        memcpy( &Element(elem), &Element(m_Size-1),
                sizeof(T) );
                        --m_Size;
                    }
                }

                and

                template <class T>
                inline void Destruct( T* pMemory )
                {
                    pMemory->~T();

                #ifdef _DEBUG
                    memset( pMemory, 0xDD, sizeof(T) ); #endif }

                Concretely: how come it is allowed to first delete a
                pointer, and afterwards
                still call the destructor on it? Is that not
                dangerous? [ Probably a c++
                finesse I'm missing ] Shake works fine most of the
                time though ( I tried
                with the console cheat command ), so it's not a
                reproducible crash yet - but
                happens very often in online games.

                Thanks in advance for any lights shed in the darkness!

                -- Maarten

                _______________________________________________
                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




-- -Tony


            -----Inline Attachment Follows-----

            _______________________________________________
            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




    _______________________________________________
    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


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

Reply via email to