Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1143 closed defect (fixed)

Assertion failed: "p" Location: trace.cpp:218 (Trace::Allocate)

Reported by: historic_bruno Owned by: philip
Priority: Release Blocker Milestone: Alpha 9
Component: Core engine Keywords:
Cc: Philip Taylor Patch:

Description

People are starting to report this error and I'm encountering it too, both in Atlas and in-game. Not sure how to reproduce it yet, but it seems to occur when loading cached shader effects (with pathnames like {cache/shaders/effects/gui_text.xml.5b6f514af325a701.xmb}):

Assertion failed: "p"
Location: trace.cpp:218 (Trace::Allocate)

pyrogenesis.exe!Trace::NotifyLoad(const Path & pathname, unsigned int size)  Line 160 + 0x39 bytes	C++
pyrogenesis.exe!VFS::LoadFile(const Path & pathname, boost::shared_ptr<unsigned char> & fileContents, unsigned int & size)  Line 187	C++
pyrogenesis.exe!CXeromyces::ReadXMBFile(const boost::shared_ptr<IVFS> & vfs, const Path & filename)  Line 162 + 0x1c bytes	C++
pyrogenesis.exe!CXeromyces::Load(const boost::shared_ptr<IVFS> & vfs, const Path & filename)  Line 90 + 0x10 bytes	C++
pyrogenesis.exe!CShaderManager::LoadEffect(const char * name, const std::map<CStr8,CStr8,std::less<CStr8>,std::allocator<std::pair<CStr8 const ,CStr8> > > & baseDefines)  Line 259	C++
pyrogenesis.exe!CGUI::DrawText(SGUIText & Text, const CColor & DefaultColor, const CPos & pos, const float & z, const CRect & clipping)  Line 907 + 0x86 bytes	C++
pyrogenesis.exe!IGUITextOwner::DrawText(int index, const CColor & color, const CPos & pos, float z, const CRect & clipping)  Line 97 + 0x1c bytes	C++
pyrogenesis.exe!CButton::Draw()  Line 120	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 324	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 326 + 0xd bytes	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 326 + 0xd bytes	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 326 + 0xd bytes	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 326 + 0xd bytes	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 326 + 0xd bytes	C++
pyrogenesis.exe!GUI<int>::RecurseObject(int RR, IGUIObject * pObject, void (void)* pFunc)  Line 326 + 0xd bytes	C++
pyrogenesis.exe!CGUI::Draw()  Line 453 + 0x17 bytes	C++
pyrogenesis.exe!CGUIManager::Draw()  Line 278 + 0x8 bytes	C++
pyrogenesis.exe!Render()  Line 253	C++
pyrogenesis.exe!Frame()  Line 391	C++
pyrogenesis.exe!RunGameOrAtlas(int argc, const char * * argv)  Line 501 + 0x5 bytes	C++
pyrogenesis.exe!main(int argc, char * * argv)  Line 536 + 0xc bytes	C++
pyrogenesis.exe!wmain(int argc, wchar_t * * argv)  Line 380 + 0xa bytes	C++
pyrogenesis.exe!__tmainCRTStartup()  Line 552 + 0x17 bytes	C
pyrogenesis.exe!CallStartupWithinTryBlock()  Line 397	C++
kernel32.dll!7651339a()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
ntdll.dll!77b89ef2()
ntdll.dll!77b89ec5()

Change History (5)

comment:1 by historic_bruno, 12 years ago

OK, one way I'm reproducing this:

  • Start the game with Belgian Bog map
  • Reveal the map
  • Select a unit and choose civ centre so the build preview shows
  • Move the preview around the edges of the map
  • Crash

Call stack from the game's error reporter:

Assertion failed: "p"
Location: trace.cpp:218 (Trace::Allocate)

Call stack:

Trace::NotifyLoad (trace.cpp:160)
    this = (unavailable)
    pathname = 0x0014F2F4 -> 
        path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        separator = [8] { 47 ('/'), 9151, 29060, 7484, 62780, 20, 45808, 342 }

    size = 577 (0x00000241)

VFS::LoadFile (vfs.cpp:187)
    this = (unavailable)
    pathname = 0x0014F2F4 (see above)
    fileContents = 0x0014F410 -> 
        px = 0x10591000 -> "XMB0"
        pn = 
            pi_ = 0x050A9E10 -> 
                use_count_ = 2 (0x00000002)
                weak_count_ = 1 (0x00000001)



    size = 0x0014F1D4 -> 577 (0x00000241)
    s = (ScopedLock)
    directory = 0x2C520000 -> 
        m_files = (unsupported map<Path,VfsFile >)
        m_subdirectories = (unsupported map<Path,VfsDirectory >)
        m_realDirectory = 
            px = 0x006C006D -> 
                (IFileLoader)
                m_path = 
                    path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                    separator = (unavailable - internal error)


                m_priority = (unavailable - internal error)

                m_flags = (unavailable - internal error)

                m_watch = 
                    px = (unavailable - internal error)

                    pn = 
                        pi_ = (unavailable - internal error)




            pn = 
                pi_ = 0x0035002E -> 
                    use_count_ = 0 (0x00000000)
                    weak_count_ = 0 (0x00000000)



        m_shouldPopulate = 3539042 (0x00360062)

    file = 0x0014F410 (see above)

CXeromyces::ReadXMBFile (xeromyces.cpp:162)
    this = (unavailable)
    vfs = 0x00000241
    filename = 0x0014F2F4 (see above)
    size = 577 (0x00000241)

CXeromyces::Load (xeromyces.cpp:90)
    this = (unavailable)
    vfs = 0x015F91CC -> 
        px = 0x005AAE48 -> (IVFS)
        pn = 
            pi_ = 0x005AA460 -> 
                use_count_ = 5 (0x00000005)
                weak_count_ = 1 (0x00000001)



    filename = 0x0014F518 -> 
        path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        separator = [8] { 47 ('/'), 20, 30696, 7484, 63040, 20, 13934, 343 }

    hash = 
        m_Digest = [4] { 1732584193 (0x67452301), 4023233417 (0xEFCDAB89), 2562383102 (0x98BADCFE), 271733878 (0x10325476) }
        m_Buf = [64] 
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized)
            (uninitialized) ...
        m_BufLen = 0 (0x00000000)
        m_InputLen = 0 (0x0000000000000000)

    cacheLoader = 
        m_VFS = 
            px = 0x005AAE48 (see above)
            pn = 
                pi_ = 0x005AA460 (see above)


        m_FileExtension = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)

    xmbPath = 
        path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        separator = 47 ('/')


CShaderManager::LoadEffect (shadermanager.cpp:259)
    this = (unavailable)
    name = 0x015AA290 -> "gui_text"
    baseDefines = 0x0014F62C -> (unsupported map<CStr8,CStr8 >)
    _children_329 = 
        Count = 0 (0x00000000)
        m_Pointer = 0x00000000
        m_LastItemID = 1373184 (0x0014F400)
        m_LastPointer = 0x691C633A -> [8] { 131, 196, 36 ('$'), 131, 102 ('f'), 56 ('8'), 191, 95 ('_') }

    XeroFile = 
        
            m_Pointer = 0x00000000
            m_ElementNameCount = 1373288 (0x0014F468)
            m_AttributeNameCount = 1763468636 (0x691C655C)
            m_ElementPointer = 0x6A15F554 -> [8] { 192, 159, 19, 106 ('j'), 1, 0, 0, 0 }
            m_AttributePointer = 0x00000007

        m_XMBBuffer = 
            px = 0x10591000 (see above)
            pn = 
                pi_ = 0x050A9E10 (see above)



    at_shader = 132231736 (0x07E1B238)
    usableTechs = (unsupported vector<pair<XMBElement,int> >)
    el_pass = 147875144 (0x08D06548)
    el_blend = 147879256 (0x08D07558)
    Technique = 
        m_Pointer = 0x0944009E -> [8] { 72 ('H'), 132, 190, 247, 117 ('u'), 173, 88 ('X'), 216 }

    Child = 
        m_Pointer = 0x00000000

    tech = 
        m_Passes = (unsupported vector<CShaderPass >)

    profile2__ = 
        m_Name = 0x015A7674 -> "loading effect"

    at_shaders = 7 (0x00000007)
    Root = 
        m_Pointer = 0x00000000

    _children_281 = 
        Count = 147875144 (0x08D06548)
        m_Pointer = 0x00000001
        m_LastItemID = 147879256 (0x08D07558)
        m_LastPointer = 0x00000001

    at_dst = 0 (0x00000000)
    xmlFilename = 
        path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        separator = 47 ('/')

    el_require = 1779823952 (0x6A15F550)
    at_src = 132295168 (0x07E2AA00)
    _i_281 = 168558751 (0x0A0C009F)
    Child = 
        m_Pointer = 0x00000007

    preference = 1373348 (0x0014F4A4)
    isUsable = false
    _children_285 = 
        Count = 1779823956 (0x6A15F554)
        m_Pointer = 0x00000000
        m_LastItemID = 0 (0x00000000)
        m_LastPointer = 0x0014F480 -> [8] { 24, 7, 156, 0, 93 (']'), 164, 20, 105 ('i') }

    _i_329 = 7 (0x00000007)
    pass = 
        m_Shader = 
            px = 0x00000000
            pn = 
                pi_ = 0x00100000 -> 
                    use_count_ = (unavailable - internal error)

                    weak_count_ = (unavailable - internal error)




        m_HasAlpha = false
        m_AlphaFunc = 1373060 (0x0014F384)
        m_AlphaRef = 21133881282926822000000000.000000 (0x698BDA30)
        m_HasBlend = (bool)0x78
        m_BlendSrc = 7 (0x00000007)
        m_BlendDst = 1 (0x00000001)
        m_HasColorMask = (bool)0x48
        m_ColorMaskR = 101 (0x65)
        m_ColorMaskG = 208 (0xD0)
        m_ColorMaskB = 8 (0x08)
        m_ColorMaskA = 88 (0x58)
        m_HasDepthMask = (bool)0x75
        m_DepthMask = 208 (0xD0)
        m_HasDepthFunc = (bool)0x08
        m_DepthFunc = 1 (0x00000001)

    _children_336 = 
        Count = 1779823956 (0x6A15F554)
        m_Pointer = 0x00000000
        m_LastItemID = 0 (0x00000000)
        m_LastPointer = 0x0014F480 (see above)

    Element = 
        m_Pointer = 0x0014F4A4 -> [8] { 242, 224, 183, 119 ('w'), 0, 0, 0, 0 }

    shader = 
        px = 0x48B5C468 -> 
            m_IsValid = (unavailable - internal error)

            m_StreamFlags = (unavailable - internal error)


        pn = 
            pi_ = 0x403FC5AD -> 
                use_count_ = (unavailable - internal error)

                weak_count_ = (unavailable - internal error)




    _i_336 = 168558751 (0x0A0C009F)

CGUI::DrawText (cgui.cpp:907)
    this = (unavailable)
    Text = 0x23A84418 -> 
        m_TextCalls = (vector<SGUIText::STextCall >)
        m_SpriteCalls = (list<SGUIText::SSpriteCall >)
        m_Size = 
            cx = 41.000000 (0x42240000)
            cy = 21.000000 (0x41A80000)


    DefaultColor = 0x0014F6A8 -> 
        r = 1.000000 (0x3F800000)
        g = 1.000000 (0x3F800000)
        b = 1.000000 (0x3F800000)
        a = 1.000000 (0x3F800000)

    pos = 0x21315630 -> 
        x = 921.000000 (0x44664000)
        y = -93.000000 (0xC2BA0000)

    z = 0x0014F680 -> 40.099998 (0x42206666)
    clipping = 0x0014F698 -> 
        left = 0.000000 (0x00000000)
        top = 0.000000 (0x00000000)
        right = 0.000000 (0x00000000)
        bottom = 0.000000 (0x00000000)

    tech = 
        m_Passes = (unsupported vector<CShaderPass >)

    textRenderer = 
        m_Shader = 
            px = 0x21315628 -> 
                m_IsValid = false
                m_StreamFlags = 1147551744 (0x44664000)

            pn = 
                pi_ = 0x0014F650 -> 
                    use_count_ = 598230040 (0x23A84418)
                    weak_count_ = 1373864 (0x0014F6A8)



        m_Transform = 
            _11 = 0.000000 (0x0014F5D4)
            _21 = 0.000000 (0x014BA8A1)
            _31 = 0.000000 (0x00000000)
            _41 = 0.000000 (0x00000007)
            _12 = 0.000000 (0x23B54D44)
            _22 = 0.000000 (0x00000007)
            _32 = 0.000000 (0x1D3C7774)
            _42 = 0.000000 (0x0014F6A8)
            _13 = 0.000000 (0x21315628)
            _23 = 0.000000 (0x014BA939)
            _33 = 0.000000 (0x23B54D38)
            _43 = 0.000000 (0x0014F5E8)
            _14 = 0.000000 (0x014DF195)
            _24 = 0.000000 (0x20E411E4)
            _34 = 40.000000 (0x42200000)
            _44 = 0.000000 (0x20E411C8)
            _data = [16] 
                0.000000 (0x0014F5D4)
                0.000000 (0x014BA8A1)
                0.000000 (0x00000000)
                0.000000 (0x00000007)
                0.000000 (0x23B54D44)
                0.000000 (0x00000007)
                0.000000 (0x1D3C7774)
                0.000000 (0x0014F6A8)
                0.000000 (0x21315628)
                0.000000 (0x014BA939)
                0.000000 (0x23B54D38)
                0.000000 (0x0014F5E8) ...
            _data2d = [4] 
                [4] { 0.000000 (0x0014F5D4), 0.000000 (0x014BA8A1), 0.000000 (0x00000000), 0.000000 (0x00000007) }
                [4] { 0.000000 (0x23B54D44), 0.000000 (0x00000007), 0.000000 (0x1D3C7774), 0.000000 (0x0014F6A8) }
                [4] { 0.000000 (0x21315628), 0.000000 (0x014BA939), 0.000000 (0x23B54D38), 0.000000 (0x0014F5E8) }
                [4] { 0.000000 (0x014DF195), 0.000000 (0x20E411E4), 40.000000 (0x42200000), 0.000000 (0x20E411C8) }

        m_Color = 
            r = 0.000000 (0x050A307C)
            g = 0.000000 (0x0014F6D4)
            b = 0.000000 (0x0014F5E8)
            a = 0.000000 (0x014C52EE)

        m_Font = 
            px = 0x1D3C7774 -> 
                h = (unavailable - internal error)


            pn = 
                pi_ = 0x0014F670 -> 
                    use_count_ = 0 (0x00000000)
                    weak_count_ = 1373864 (0x0014F6A8)



        m_Fonts = (unsupported map<CStrW,boost::shared_ptr<CFont> >)
        m_Batches = (vector<CTextRenderer::SBatch >)

    color = 
        r = 0.000000 (0x21315640)
        g = 0.000000 (0x014F4112)
        b = -1.000000 (0xBF800000)
        a = -1.000000 (0xBF800000)


IGUITextOwner::DrawText (iguitextowner.cpp:97)
    this = (unavailable)
    index = 0 (0x00000000)
    color = 0x0014F6A8 (see above)
    pos = 0x21315630 (see above)
    z = 40.099998 (0x42206666)
    clipping = 0x0014F698 (see above)

CButton::Draw (cbutton.cpp:120)
    this = (unavailable)
    sprite_disabled = 0x20E412A0 -> 
        m_SpriteName = { (unsupported basic_string<char,char_traits<char> >) }
        m_DrawCallCache = 
            (unsupported vector<GUIRenderer::SDrawCall >)

        m_CachedSize = 
            left = 0.000000 (0x00000000)
            top = 0.000000 (0x00000000)
            right = 0.000000 (0x00000000)
            bottom = 0.000000 (0x00000000)

        m_CachedCellID = 4294967295 (0xFFFFFFFF)

    sprite = 0x20E411C8 -> 
        m_SpriteName = { (unsupported basic_string<char,char_traits<char> >) }
        m_DrawCallCache = 
            (unsupported vector<GUIRenderer::SDrawCall >)

        m_CachedSize = 
            left = 864.000000 (0x44580000)
            top = -96.000000 (0xC2C00000)
            right = 1020.000000 (0x447F0000)
            bottom = -68.000000 (0xC2880000)

        m_CachedCellID = 0 (0x00000000)

    sprite_over = 0x20E41210 -> 
        m_SpriteName = { (unsupported basic_string<char,char_traits<char> >) }
        m_DrawCallCache = 
            (unsupported vector<GUIRenderer::SDrawCall >)

        m_CachedSize = 
            left = 0.000000 (0x00000000)
            top = 0.000000 (0x00000000)
            right = 0.000000 (0x00000000)
            bottom = 0.000000 (0x00000000)

        m_CachedCellID = 4294967295 (0xFFFFFFFF)

    strSpriteOver = { (unsupported basic_string<char,char_traits<char> >) }
    sprite_pressed = 0x20E41258 -> 
        m_SpriteName = { (unsupported basic_string<char,char_traits<char> >) }
        m_DrawCallCache = 
            (unsupported vector<GUIRenderer::SDrawCall >)

        m_CachedSize = 
            left = 0.000000 (0x00000000)
            top = 0.000000 (0x00000000)
            right = 0.000000 (0x00000000)
            bottom = 0.000000 (0x00000000)

        m_CachedCellID = 4294967295 (0xFFFFFFFF)

    strSprite = { (unsupported basic_string<char,char_traits<char> >) }
    strCellId = { (unsupported basic_string<char,char_traits<char> >) }
    bz = 40.000000 (0x42200000)
    strSpritePressed = { (unsupported basic_string<char,char_traits<char> >) }
    cell_id = 0 (0x00000000)
    strSpriteDisabled = { (unsupported basic_string<char,char_traits<char> >) }
    color = 
        r = 1.000000 (0x3F800000)
        g = 1.000000 (0x3F800000)
        b = 1.000000 (0x3F800000)
        a = 1.000000 (0x3F800000)


GUI<int>::RecurseObject (guiutil.h:324)
    RR = 1 (0x00000001)
    pObject = 0x21315640 -> 
        m_CachedActualSize = 
            left = 864.000000 (0x44580000)
            top = -96.000000 (0xC2C00000)
            right = 1020.000000 (0x447F0000)
            bottom = -68.000000 (0xC2880000)

        m_Name = { (unsupported basic_string<char,char_traits<char> >) }
        m_Children = (unsupported vector<IGUIObject * >)
        m_pParent = 0x0B8053A0 -> 
            m_CachedActualSize = 
                left = 864.000000 (0x44580000)
                top = -160.000000 (0xC3200000)
                right = 1020.000000 (0x447F0000)
                bottom = -78.000000 (0xC29C0000)

            m_Name = { (unsupported basic_string<char,char_traits<char> >) }
            m_Children = (unsupported vector<IGUIObject * >)
            m_pParent = 0x0B805500 -> 
                m_CachedActualSize = 
                    left = 860.000000 (0x44570000)
                    top = -196.000000 (0xC3440000)
                    right = 1024.000000 (0x44800000)
                    bottom = 0.000000 (0x00000000)

                m_Name = { (unsupported basic_string<char,char_traits<char> >) }
                m_Children = (unsupported vector<IGUIObject * >)
                m_pParent = 0x00A39F28 -> 
                    m_CachedActualSize = 
                        left = 0.000000 (0x00000000)
                        top = 0.000000 (0x00000000)
                        right = 1024.000000 (0x44800000)
                        bottom = 768.000000 (0x44400000)

                    m_Name = { (unsupported basic_string<char,char_traits<char> >) }
                    m_Children = (unsupported vector<IGUIObject * >)
                    m_pParent = 0x00A399A8 -> 
                        m_CachedActualSize = 
                            left = 0.000000 (0x00000000)
                            top = 0.000000 (0x00000000)
                            right = 0.000000 (0x00000000)
                            bottom = 0.000000 (0x00000000)

                        m_Name = { (unsupported basic_string<char,char_traits<char> >) }
                        m_Children = (unsupported vector<IGUIObject * >)
                        m_pParent = 0x00000000
                        m_LastClickTime = [6] 
                            0 (0x0000000000000000)
                            0 (0x0000000000000000)
                            0 (0x0000000000000000)
                            0 (0x0000000000000000)
                            0 (0x0000000000000000)
                            0 (0x0000000000000000)
                        m_MouseHovering = false
                        m_Settings = (unsupported map<CStr8,SGUISetting >)
                        m_pGUI = 0x050A2FE0 -> 
                            m_ScriptObject = 0x0D5E6910 -> (JSObject)
                            m_MousePos = 
                                x = 660.000000 (0x44250000)
                                y = 149.000000 (0x43150000)

                            (too much output; skipping to next top-level symbol)

                        m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
                        m_JSObject = 0x00000000

                    m_LastClickTime = [6] 
                        0 (0x0000000000000000)
                        0 (0x0000000000000000)
                        0 (0x0000000000000000)
                        0 (0x0000000000000000)
                        0 (0x0000000000000000)
                        0 (0x0000000000000000)
                    m_MouseHovering = false
                    m_Settings = (unsupported map<CStr8,SGUISetting >)
                    m_pGUI = 0x050A2FE0 (see above)
                    m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
                    m_JSObject = 0x24305DE8 -> (JSObject)

                m_LastClickTime = [6] 
                    0 (0x0000000000000000)
                    0 (0x0000000000000000)
                    0 (0x0000000000000000)
                    0 (0x0000000000000000)
                    0 (0x0000000000000000)
                    0 (0x0000000000000000)
                m_MouseHovering = false
                m_Settings = (unsupported map<CStr8,SGUISetting >)
                m_pGUI = 0x050A2FE0 (see above)
                m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
                m_JSObject = 0x24300FC8 -> (JSObject)

            m_LastClickTime = [6] 
                0 (0x0000000000000000)
                0 (0x0000000000000000)
                0 (0x0000000000000000)
                0 (0x0000000000000000)
                0 (0x0000000000000000)
                0 (0x0000000000000000)
            m_MouseHovering = false
            m_Settings = (unsupported map<CStr8,SGUISetting >)
            m_pGUI = 0x050A2FE0 (see above)
            m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
            m_JSObject = 0x00000000

        m_LastClickTime = [6] 
            0 (0x0000000000000000)
            0 (0x0000000000000000)
            0 (0x0000000000000000)
            0 (0x0000000000000000)
            0 (0x0000000000000000)
            0 (0x0000000000000000)
        m_MouseHovering = false
        m_Settings = (unsupported map<CStr8,SGUISetting >)
        m_pGUI = 0x050A2FE0 (see above)
        m_ScriptHandlers = (unsupported map<CStr8,JSObject * * >)
        m_JSObject = 0x00000000

    pFunc = 0x014C5690 -> (IGUIObject::`vcall'{24}')

GUI<int>::RecurseObject (guiutil.h:326)
    RR = 1 (0x00000001)
    pObject = 0x0B8053A0 (see above)
    pFunc = 0x014C5690 (see above)

GUI<int>::RecurseObject (guiutil.h:326)
    RR = 1 (0x00000001)
    pObject = 0x0B805500 (see above)
    pFunc = 0x014C5690 (see above)

GUI<int>::RecurseObject (guiutil.h:326)
    RR = 1 (0x00000001)
    pObject = 0x00A39F28 (see above)
    pFunc = 0x014C5690 (see above)

GUI<int>::RecurseObject (guiutil.h:326)
    RR = 1 (0x00000001)
    pObject = 0x00A399A8 (see above)
    pFunc = 0x014C5690 (see above)

CGUI::Draw (cgui.cpp:453)
    this = (unavailable)
    e = 0x014F63C8 -> 
        
            (exception)
            m_msg = 0x015891F8 -> "©QvbQv-JQv"



CGUIManager::Draw (guimanager.cpp:278)
    this = (unavailable)
    profile2__ = 
        m_Name = 0x015AD7AC -> "gui"

    profile2gpu__ = 
        m_Name = 0x015AD7AC (see above)


Render (gamesetup.cpp:253)
    skycol = 
        r = 0.000000 (0x00000000)
        g = 0.000000 (0x00000000)
        b = 0.000000 (0x00000000)
        a = 1.000000 (0x3F800000)

    profile2__ = 
        m_Name = 0x0159B05C -> "render"

    skystring = { (unsupported basic_string<char,char_traits<char> >) }
    cursorName = { (unsupported basic_string<wchar_t,char_traits<wchar_t> >) }
    profile2__ = 
        m_Name = 0xFF000000 -> (unavailable - internal error)


    profile2gpu__ = 
        m_Name = 0x403FC360 -> (unavailable - internal error)



Frame (main.cpp:391)
    need_update = true 
    TimeSinceLastFrame = 0.016893 (0x3C8A6410)
    profile2__ = 
        m_Name = 0x0158A624 -> "frame"

    need_render = true 
    profile2__ = 
        m_Name = 0x0158A5B4 -> "sound update"

    down = [3] { -0.000000 (0x80000000), -0.819152 (0xBF51B3F3), -0.573576 (0xBF12D5E8) }
    profile2__ = 
        m_Name = 0x0158A5B4 (see above)

    profile2__ = 
        m_Name = 0x0158A5B4 (see above)

    profile2__ = 
        m_Name = 0x0158A5B4 (see above)


RunGameOrAtlas (main.cpp:501)
    argc = 1 (0x00000001)
    argv = (unavailable)
    args = 
        m_Args = (unsupported vector<pair<CStr8,CStr8> >)
        m_Arg0 = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 92 ('\')


    paths = 
        m_root = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 348

        m_rdata = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 26707

        m_data = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 65534

        m_config = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 34696

        m_cache = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 34690

        m_logs = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 617


    replay = 
        m_Stream = 0x005A19F8 -> (basic_istream<char,char_traits<char> >)

    mod = 
        path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        separator = 64132

    zip = 
        path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        separator = 1843

    paths = 
        m_root = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 348

        m_rdata = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 26707

        m_data = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 65534

        m_config = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 34696

        m_cache = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 34690

        m_logs = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 617


    builder = 
        m_VFS = 
            px = 0x005A0000 -> (IVFS)
            pn = 
                pi_ = 0x00000000


        m_Files = (unsupported vector<Path >)
        m_TempDir = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 63968



main (main.cpp:536)
    argc = 1 (0x00000001)
    argv = 0x009F8750 -> 0x005A1A00 -> "C:\Users\Ben\devel\ps\build\workspaces\vc2010\..\..\..\binaries\system\pyrogenesis.exe"

wmain (wseh.cpp:380)
    argc = 1 (0x00000001)
    argv = 0x009F8CE8 -> 0x009F8CF0 -> "C:\Users\Ben\devel\ps\build\workspaces\vc2010\..\..\..\binaries\system\pyrogenesis.exe"
    utf8_argv = (unsupported vector<char * >)
    ret = 10456296 (0x009F8CE8)
    utf8 = (unsupported basic_string<char,char_traits<char> >)

CallStartupWithinTryBlock (wseh.cpp:397)
    ret = 0 (0x00000000)

RtlInitializeExceptionChain (:0)

RtlInitializeExceptionChain (:0)


errno = 42 (?)
OS error = 0 (no error code was set)

comment:2 by historic_bruno, 12 years ago

Cc: Philip Taylor added
Priority: Must HaveRelease Blocker

More reports of this in IRC.

comment:3 by Philip Taylor, 12 years ago

The problem is that CShaderManager doesn't cache effect files. The other problem is that we trace IO operations with Trace even though we never do anything with that data, so it's wasting memory.

comment:4 by philip, 12 years ago

Owner: set to philip
Resolution: fixed
Status: newclosed

In [11006]:

Cache shader effects. Fixes #1143.

comment:5 by philip, 12 years ago

In [11007]:

Use dummy IO tracer, to avoid overhead of storing data that will never be used. (See #1143.)

Note: See TracTickets for help on using tickets.