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


On 02/29/2012 03:29 PM, Michael Meeks wrote:
        So - it took me a while to get around to this, but luckily while I was
chasing:

        https://bugs.freedesktop.org/show_bug.cgi?id=46340

        I hit this. Interestingly on Linux we do get some (not particularly
helpful) console debug:

$ ./soffice /tmp/foo.odp

terminate called after throwing an instance of
'com::sun::star::lang::DisposedException'
$

        And of course, no auto-save, no contents of the exception etc. etc. And
I imagine the same is true for all un-caught exceptions, including
(incidentally ::std::bad_alloc() ;-). I imagine that at the moment
actively discards document data left&  right in the vast majority of
cases where it is not caught.

Strange. At least for my (--enable-dbgutil) master build, following the instructions of fdo#46340 *does* lead to a restart with crash dialog and document recovery.

Also, experimenting with the attached crash.patch (see also <https://issues.apache.org/ooo/show_bug.cgi?id=108411> "let SID_CRASH really crash") does lead to the crash dialog in all four variations of the code (std::abort() vs. throw std::bad_alloc() and directly from main thread vs. pthread_create).

Stephan
diff --git a/framework/uiconfig/startmodule/menubar/menubar.xml 
b/framework/uiconfig/startmodule/menubar/menubar.xml
index 055810b..8bebe1c 100755
--- a/framework/uiconfig/startmodule/menubar/menubar.xml
+++ b/framework/uiconfig/startmodule/menubar/menubar.xml
@@ -2,6 +2,7 @@
 <menu:menubar xmlns:menu="http://openoffice.org/2001/menu"; menu:id="menubar">
     <menu:menu menu:id=".uno:PickList">
         <menu:menupopup>
+            <menu:menuitem menu:id=".uno:Crash"/>
             <menu:menuitem menu:id=".uno:AddDirect"/>
             <menu:menuitem menu:id=".uno:Open"/>
             <menu:menuitem menu:id=".uno:RecentFileList"/>
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 8070b51..e870eef 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -180,6 +180,7 @@ static void showDocument( const char* pBaseName )
     }
 }
 
+/*SB*/extern"C"{static void*SBFail(void*){/*SB std::abort(); */throw std::bad_alloc();}}
 void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
 {
     bool bDone = false;
@@ -543,8 +544,9 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
         case SID_CRASH :
         {
             // Provoke a crash:
-            char * crash = 0;
-            *crash = 0;
+//SB            char * crash = 0;
+//SB            *crash = 0;
+/*SB SBFail(0); */pthread_t SBt;pthread_create(&SBt,0,SBFail,0);
             break;
         }
 
diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk
index 71508f2..e274830 100644
--- a/solenv/gbuild/platform/linux.mk
+++ b/solenv/gbuild/platform/linux.mk
@@ -27,7 +27,11 @@
 
 gb_LinkTarget_LDFLAGS += \
         -Wl,-z,defs \
+        -pthread
 
 include $(GBUILDDIR)/platform/unxgcc.mk
 
+gb_LinkTarget_CFLAGS += -pthread
+gb_LinkTarget_CXXFLAGS += -pthread
+
 # vim: set noet sw=4 ts=4:

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.