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



On Wed, 2012-02-29 at 17:00 +0100, Stephan Bergmann wrote:
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.

        Interesting; well - I built with make ENABLE_SYMBOLS=true but otherwise
a reasonably normal build (AFAICS), I don't use --enable-dbgutil myself.

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).

        For me with:

+                fprintf (stderr, "Crash !\n");
+                throw ::std::bad_alloc();

        I get:

./soffice -writer
Warning: -writer is deprecated.  Use --writer instead.

Crash !
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

        And no crash handler. I guess I have a linkoo'd build perhaps something
there is causing grief.

        I attach the patch, and sample macro in case someone else has a more
'producty' build handy and wants to try.

        Incidentally, I love your crash patch :-) IMHO we badly need some unit
tests for crash recovery and a nice built-in simulated crash is rather
useful.

        HTH,

                Michael.

-- 
michael.meeks@suse.com  <><, Pseudo Engineer, itinerant idiot
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..8826081 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,11 @@ 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);
+                fprintf (stderr, "Crash !\n");
+                throw ::std::bad_alloc();
             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:

Attachment: crash-test.odt
Description: application/vnd.oasis.opendocument.text


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.