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: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to