[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