Thanks for the information Herbert. We continued looking at this today, but we
still have not determined the reason it is crashing. The application crashes at
SidebarController::notifyContextChangeEvent in SidebarController.cxx at
maRequestedContext =Context {...}. Our debugger says that eEvent is of the
value <ERROR>.
Raymond
-----Original Message-----
From: Herbert Duerr [mailto:[email protected]]
Sent: Tuesday, January 21, 2014 5:11 AM
To: [email protected]
Cc: Meffe, David K; Steele, Raymond
Subject: Re: EXTERNAL: Re: Building comphelper
Hi David,
> I just wanted to share the basics of what I have found so far. I still have
> no idea on how to solve the issue. Any help would be great!
>
> Observed Behaviour
> 1. OpenOffice starts, the splash screen with logo appears and then closes
> replaced with the full application window and choices for specific OpenOffice
> projects.
> 2. Selecting either the Word or Spreadsheet project causes a segmentation
> fault and closes the application.
> 3. Following the start of the application with the debugger, we can see
> the SidebarController is created in a first pass without error (known because
> first time to this stop point does not error).
> 4. As the process continues, the SidebarController constructor is called a
> second time (unknown why, but could be understood with more familiarity with
> the system).
> 5. The failure doesn't appear in the constructor, but the trace follows
> down SidebarController constructor call of "WeakReference<SidebarController>
> WeakController (this);"
> 6. This template definition for WeakController uses
> Reference<Template>::Refrence( interface_type *pInterface) as its definition
> in ::com::sun::star::uno::Reference.hxx.
> 7. The function will try to convert the pInterface parameter to a
> XInterface type called _pInterface.
> 8. If it succeeds in converting the pInterface to _pInterface then the
> function will try to acquire a new reference.
> 9. Assumption: Creating this new reference calls
> SidebarController::notifyContextChangeEvent with a corrupt or bad rEvent.
> This assumption is based on the stack where the immediate next routine after
> the Reference function call is the notifyContextChangeEvent, also while
> following along in the debugger, the rEvent parameter at this point is
> already corrupted with the value <ERROR> stored in the structure.
> 10. It is later after the notifyContextChangeEvent calls Context and then
> ustring that the segmentation fault occurs, but I believe the error located
> in rEvent is what causes this later problem.
I haven't fully caught up with everything, but if I had to debug this I'd watch
out for exceptions thrown in step 5 and later. In gdb I'd use the command
catch throw
to find the throwing code. Is there a similar facility in Solaris Studio?
Herbert
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]