Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Le 10/10/2011 13:27, Michael Meeks a écrit :
On Sun, 2011-10-09 at 22:46 -0700, julien2412 wrote:
...
        Secondly Julien - your build is with debug=true - that can change
behaviour, but of course we should chase down those changed behaviours
and try to work out which is causing the grief [ almost certainly one of
the warnings ].

In fact, I used make debug=true for the test but it was useless since I compile the whole repo in debug (my autogen.lastrun includes these lines :
--enable-debug
--enable-dbgutil
--enable-symbols
)

        Otherwise - it's fairly hard to see what is going on here. In order to
get a 0x6 pointer and not crash or valgrind warning inside:

SfxObjectShellArr_Impl&      SfxApplication::GetObjectShells_Impl() const
{
     return *pAppData_Impl->pObjShells;
}

        which is not in-line; we must have a valid (global) pApp, -and- a valid
pApp->pAppData_Impl - since pObjShells is at some substantial offset
inside there. So - pObjShells must be NULL in error cf.
sfx2/source/inc/appdata.hxx.

        As Markus says it's hard for that to happen, unless the:

sfx2/source/appl/appinit.cxx's
        bool SfxApplication::Initialize_Impl()

        has caught an exception and not completed.

        Julien - it'd be wonderful (if you could) to build sfx2 from clean with
debug=true, put a breakpoint at: appinit.cxx:231 (say) run to there,
then [ from there ! ], do break __cxa_throw, and continue until we get
an exception, the post some exception traces from there.
I put a break on appinit.cxx:231 + break __cxa_throw, I pasted a first part here :
http://pastebin.com/NAX6AUrJ

then a second part here :
http://pastebin.com/BBepMkcY

If you need more info with different break or something, don't hesitate to tell me. Precision : to quickly do this test, I haven't git updated my repo today. (I'm going to do it now)
        Is that do-able ? And of course, I suspect we should have a
try { } catch () { fail_really_hard_even_in_non_debug_mode(); } in that
constructor,
For the moment I haven't put the try catch. Tell me if it's still useful and what's the best "fail_really_hard" (without breaking hardware :-) )
        Thanks ;-)
Thank YOU for having given me some support on this :-)
                Michael.
Julien.


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.