[Libreoffice] segfault in sc
Julien Nabet
serval2412 at yahoo.fr
Mon Oct 10 11:01:52 PDT 2011
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.
More information about the LibreOffice
mailing list