Core: update crash message 49/18149/3
Paul Bignier [Tue, 10 May 2016 13:01:23 +0000 (15:01 +0200)]
Change-Id: I5057bf282b8c05eebe59bbd67f8e0074a27badc4

scilab/modules/core/src/c/signal_mgmt.c
scilab/modules/core/tests/unit_tests/segfault_mgmt.dia.ref
scilab/modules/core/tests/unit_tests/segfault_mgmt.tst
scilab/modules/core/tests/unit_tests/segfault_mgmt_2.dia.ref
scilab/modules/core/tests/unit_tests/segfault_mgmt_2.tst
scilab/modules/core/tests/unit_tests/segfault_mgmt_3.dia.ref
scilab/modules/core/tests/unit_tests/segfault_mgmt_3.tst

index 5f40700..c0fc135 100644 (file)
@@ -413,7 +413,7 @@ static void sig_fatal(int signum, siginfo_t * info, void *p)
     // 4 is to ignore the first 4 functions
     bt = backtrace_print(4, 1);
     Scierror(42,
-             _("A fatal error has been detected by Scilab.\nYour instance will probably quit unexpectedly soon.\nIf a graphic feature has been used, this might be caused by the system graphic drivers.\nPlease try to update them and run this feature again.\nYou can report a bug on %s with:\n* a sample code which reproduces the issue\n* the result of [a, b] = getdebuginfo()\n* the following information:\n%s %s\n"),
+             _("A fatal error has been detected by Scilab.\nPlease check your user-defined functions (or external module ones) should they appear in the stack trace.\nOtherwise you can report a bug on %s with:\n * a sample code which reproduces the issue\n * the result of [a, b] = getdebuginfo()\n * the following information:\n%s %s\n"),
              PACKAGE_BUGREPORT, print_buffer, bt);
 
     free(bt);
index 336aff4..b0c2286 100644 (file)
@@ -1,30 +1,43 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK ERROR OUTPUT -->
+//
 // <-- CLI SHELL MODE -->
+//
 // <-- UNIX ONLY -->
 ilib_verbose(0);
-curDir=pwd();
+curDir = pwd();
 cd TMPDIR;
-f1=["int ext1c(int *n, double *a_, double *b, double *c)"
-    "{"
-    "char *a=0;"
-    "strcpy(a,""plop"");"
-    "  return(0);}"];
-mputl(f1,"fun1.c");
-libname = ilib_for_link("ext1c", "fun1.c", [], "c", [], "loader.sce", "test");
-refname = "libtest" + getdynlibext();
-if refname <> libname then bugmes();quit;end
-exec('loader.sce');
-a=[1,2,3];b=[4,5,6];n=3;
-expression="call(''ext1c'',n,1,''i'',a,2,''d'',b,3,''d'',''out'',[1,3],4,''d'')"
- expression  = 
- call('ext1c',n,1,'i',a,2,'d',b,3,'d','out',[1,3],4,'d')
-if execstr(expression,'errcatch')==0 then bugmes();quit;end
-// if we are here, that means that the seg fault did not kill Scilab
-if lasterror()==[] then bugmes();quit;end
-cd(curDir);
+fd = mopen("test_script.sce", "wt");
+txt = [
+"cd TMPDIR;"
+"f1 = [""#include <string.h>"""
+"""int ext1c(int *n, double *a_, double *b, double *c)"""
+"""{"""
+"""    char* a = 0;"""
+"""    strcpy(a, """"plop"""");"""
+"""    return 0;"""
+"""}""];"
+""
+"mputl(f1, ""fun1.c"");"
+""
+"libname = ilib_for_link(""ext1c"", ""fun1.c"", [], ""c"", [], ""loader.sce"", ""test"");"
+"refname = ""libtest"" + getdynlibext();"
+"assert_checkequal(refname, libname);"
+"exec(""loader.sce"");"
+""
+"n = 3;"
+"a = [1 2 3];"
+"b = [4 5 6];"
+"call(""ext1c"", n,1,""i"", a,2,""d"", b,3,""d"", ""out"",[1 3],4,""d"");"
+];
+mputl(txt, fd);
+mclose(fd);
+err = unix(SCI+"/bin/scilab-cli -f ""test_script.sce""");
+if err == 0 then bugmes();quit;end
index 3dae054..4f9b151 100644 (file)
@@ -1,31 +1,49 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK ERROR OUTPUT -->
+//
 // <-- CLI SHELL MODE -->
+//
 // <-- UNIX ONLY -->
+
 ilib_verbose(0);
-curDir=pwd();
+curDir = pwd();
 cd TMPDIR;
-f1=["int ext1c(int *n, double *a_, double *b, double *c)"
-    "{"
-    "char *a=0;"
-    "strcpy(a,""plop"");"
-    "  return(0);}"];
 
-mputl(f1,"fun1.c");
+fd = mopen("test_script.sce", "wt");
+
+txt = [
+"cd TMPDIR;"
+"f1 = [""#include <string.h>"""
+"""int ext1c(int *n, double *a_, double *b, double *c)"""
+"""{"""
+"""    char* a = 0;"""
+"""    strcpy(a, """"plop"""");"""
+"""    return 0;"""
+"""}""];"
+""
+"mputl(f1, ""fun1.c"");"
+""
+"libname = ilib_for_link(""ext1c"", ""fun1.c"", [], ""c"", [], ""loader.sce"", ""test"");"
+"refname = ""libtest"" + getdynlibext();"
+"assert_checkequal(refname, libname);"
+"exec(""loader.sce"");"
+""
+"n = 3;"
+"a = [1 2 3];"
+"b = [4 5 6];"
+"call(""ext1c"", n,1,""i"", a,2,""d"", b,3,""d"", ""out"",[1 3],4,""d"");"
+];
+
+mputl(txt, fd);
+mclose(fd);
 
-libname = ilib_for_link("ext1c", "fun1.c", [], "c", [], "loader.sce", "test");
-refname = "libtest" + getdynlibext();
-if refname <> libname then pause, end
-exec('loader.sce');
+err = unix(SCI+"/bin/scilab-cli -f ""test_script.sce""");
+if err == 0 then pause, end
 
-a=[1,2,3];b=[4,5,6];n=3;
-expression="call(''ext1c'',n,1,''i'',a,2,''d'',b,3,''d'',''out'',[1,3],4,''d'')"
-if execstr(expression,'errcatch')==0 then pause,end
-// if we are here, that means that the seg fault did not kill Scilab
-if lasterror()==[] then pause,end
-cd(curDir);
index e91443d..c7ee4dd 100644 (file)
@@ -1,31 +1,44 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK ERROR OUTPUT -->
+//
 // <-- CLI SHELL MODE -->
+//
 // <-- UNIX ONLY -->
 ilib_verbose(0);
-curDir=pwd();
+curDir = pwd();
 cd TMPDIR;
-f2=["int ext2c(int *n, double *a_, double *b, double *c)"
-    "{"
-    "volatile int x = 42;"
-    "volatile int y = 0;"
-    "x=x/y;"
-    "return(0);}"];
-mputl(f2,"fun2.c");
-libname = ilib_for_link("ext2c", "fun2.c", [], "c", [], "loader.sce", "test");
-refname = "libtest" + getdynlibext();
-if refname <> libname then bugmes();quit;end
-exec('loader.sce');
-a=[1,2,3];b=[4,5,6];n=3;
-expression="call(''ext2c'',n,1,''i'',a,2,''d'',b,3,''d'',''out'',[1,3],4,''d'')"
- expression  = 
- call('ext2c',n,1,'i',a,2,'d',b,3,'d','out',[1,3],4,'d')
-if execstr(expression,'errcatch')==0 then bugmes();quit;end
-// if we are here, that means that the seg fault did not kill Scilab
-if lasterror()==[] then bugmes();quit;end
-cd(curDir);
+fd = mopen("test_script2.sce", "wt");
+txt = [
+"cd TMPDIR;"
+"f2 = ["
+"""int ext2c(int *n, double *a_, double *b, double *c)"""
+"""{"""
+"""    volatile int x = 42;"""
+"""    volatile int y = 0;"""
+"""    x=x/y;"""
+"""    return 0;"""
+"""}""];"
+""
+"mputl(f2, ""fun2.c"");"
+""
+"libname = ilib_for_link(""ext2c"", ""fun2.c"", [], ""c"", [], ""loader.sce"", ""test"");"
+"refname = ""libtest"" + getdynlibext();"
+"assert_checkequal(refname, libname);"
+"exec(""loader.sce"");"
+""
+"n = 3;"
+"a = [1 2 3];"
+"b = [4 5 6];"
+"call(""ext2c"", n,1,""i"", a,2,""d"", b,3,""d"", ""out"",[1 3],4,""d"");"
+];
+mputl(txt, fd);
+mclose(fd);
+err = unix(SCI+"/bin/scilab-cli -f ""test_script2.sce""");
+if err == 0 then bugmes();quit;end
index a51477f..6430316 100644 (file)
@@ -1,33 +1,50 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
-// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK ERROR OUTPUT -->
+//
 // <-- CLI SHELL MODE -->
+//
 // <-- UNIX ONLY -->
+
 ilib_verbose(0);
-curDir=pwd();
+curDir = pwd();
 cd TMPDIR;
-f2=["int ext2c(int *n, double *a_, double *b, double *c)"
-    "{"
-    "volatile int x = 42;"
-    "volatile int y = 0;"
-    "x=x/y;"
-    "return(0);}"];
 
-mputl(f2,"fun2.c");
+fd = mopen("test_script2.sce", "wt");
+
+txt = [
+"cd TMPDIR;"
+"f2 = ["
+"""int ext2c(int *n, double *a_, double *b, double *c)"""
+"""{"""
+"""    volatile int x = 42;"""
+"""    volatile int y = 0;"""
+"""    x=x/y;"""
+"""    return 0;"""
+"""}""];"
+""
+"mputl(f2, ""fun2.c"");"
+""
+"libname = ilib_for_link(""ext2c"", ""fun2.c"", [], ""c"", [], ""loader.sce"", ""test"");"
+"refname = ""libtest"" + getdynlibext();"
+"assert_checkequal(refname, libname);"
+"exec(""loader.sce"");"
+""
+"n = 3;"
+"a = [1 2 3];"
+"b = [4 5 6];"
+"call(""ext2c"", n,1,""i"", a,2,""d"", b,3,""d"", ""out"",[1 3],4,""d"");"
+];
+
+mputl(txt, fd);
+mclose(fd);
 
-libname = ilib_for_link("ext2c", "fun2.c", [], "c", [], "loader.sce", "test");
-refname = "libtest" + getdynlibext();
-if refname <> libname then pause, end
-exec('loader.sce');
+err = unix(SCI+"/bin/scilab-cli -f ""test_script2.sce""");
+if err == 0 then pause, end
 
-a=[1,2,3];b=[4,5,6];n=3;
-expression="call(''ext2c'',n,1,''i'',a,2,''d'',b,3,''d'',''out'',[1,3],4,''d'')"
-if execstr(expression,'errcatch')==0 then pause,end
-// if we are here, that means that the seg fault did not kill Scilab
-if lasterror()==[] then pause,end
-cd(curDir);
index 81dc5fe..9429582 100644 (file)
@@ -1,32 +1,44 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK ERROR OUTPUT -->
+//
 // <-- CLI SHELL MODE -->
+//
 // <-- UNIX ONLY -->
 ilib_verbose(0);
-curDir=pwd();
+curDir = pwd();
 cd TMPDIR;
-f1=["typedef void(*FUNC)(void);"
-    "int ext1c(int *n, double *a_, double *b, double *c)"
-    "{"
-    "const static unsigned char insn[4] = { 0xff, 0xff, 0xff, 0xff };"
-    "FUNC function = (FUNC) insn;"
-    "function();"
-    "  return(0);}"];
-mputl(f1,"fun1.c");
-libname = ilib_for_link("ext1c", "fun1.c", [], "c", [], "loader.sce", "test");
-refname = "libtest" + getdynlibext();
-if refname <> libname then bugmes();quit;end
-exec('loader.sce');
-a=[1,2,3];b=[4,5,6];n=3;
-expression="call(''ext1c'',n,1,''i'',a,2,''d'',b,3,''d'',''out'',[1,3],4,''d'')"
- expression  = 
- call('ext1c',n,1,'i',a,2,'d',b,3,'d','out',[1,3],4,'d')
-if execstr(expression,'errcatch')==0 then bugmes();quit;end
-// if we are here, that means that the seg fault did not kill Scilab
-if lasterror()==[] then bugmes();quit;end
-cd(curDir);
+fd = mopen("test_script3.sce", "wt");
+txt = [
+"cd TMPDIR;"
+"f3 = [""typedef void(*FUNC)(void);"""
+"""int ext3c(int *n, double *a_, double *b, double *c)"""
+"""{"""
+"""    const static unsigned char insn[4] = { 0xff, 0xff, 0xff, 0xff };"""
+"""    FUNC function = (FUNC) insn;"""
+"""    function();"""
+"""    return 0;"""
+"""}""];"
+""
+"mputl(f3, ""fun3.c"");"
+""
+"libname = ilib_for_link(""ext3c"", ""fun3.c"", [], ""c"", [], ""loader.sce"", ""test"");"
+"refname = ""libtest"" + getdynlibext();"
+"assert_checkequal(refname, libname);"
+"exec(""loader.sce"");"
+""
+"n = 3;"
+"a = [1 2 3];"
+"b = [4 5 6];"
+"call(""ext3c"", n,1,""i"", a,2,""d"", b,3,""d"", ""out"",[1 3],4,""d"");"
+];
+mputl(txt, fd);
+mclose(fd);
+err = unix(SCI+"/bin/scilab-cli -f ""test_script3.sce""");
+if err == 0 then bugmes();quit;end
index 5e77a3c..6e45687 100644 (file)
@@ -1,34 +1,50 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
-// <-- ENGLISH IMPOSED -->
+//
+// <-- NO CHECK ERROR OUTPUT -->
+//
 // <-- CLI SHELL MODE -->
+//
 // <-- UNIX ONLY -->
+
 ilib_verbose(0);
-curDir=pwd();
+curDir = pwd();
 cd TMPDIR;
-f1=["typedef void(*FUNC)(void);"
-    "int ext1c(int *n, double *a_, double *b, double *c)"
-    "{"
-    "const static unsigned char insn[4] = { 0xff, 0xff, 0xff, 0xff };"
-    "FUNC function = (FUNC) insn;"
-    "function();"
-    "  return(0);}"];
 
-mputl(f1,"fun1.c");
+fd = mopen("test_script3.sce", "wt");
+
+txt = [
+"cd TMPDIR;"
+"f3 = [""typedef void(*FUNC)(void);"""
+"""int ext3c(int *n, double *a_, double *b, double *c)"""
+"""{"""
+"""    const static unsigned char insn[4] = { 0xff, 0xff, 0xff, 0xff };"""
+"""    FUNC function = (FUNC) insn;"""
+"""    function();"""
+"""    return 0;"""
+"""}""];"
+""
+"mputl(f3, ""fun3.c"");"
+""
+"libname = ilib_for_link(""ext3c"", ""fun3.c"", [], ""c"", [], ""loader.sce"", ""test"");"
+"refname = ""libtest"" + getdynlibext();"
+"assert_checkequal(refname, libname);"
+"exec(""loader.sce"");"
+""
+"n = 3;"
+"a = [1 2 3];"
+"b = [4 5 6];"
+"call(""ext3c"", n,1,""i"", a,2,""d"", b,3,""d"", ""out"",[1 3],4,""d"");"
+];
+
+mputl(txt, fd);
+mclose(fd);
 
-libname = ilib_for_link("ext1c", "fun1.c", [], "c", [], "loader.sce", "test");
-refname = "libtest" + getdynlibext();
-if refname <> libname then pause, end
-exec('loader.sce');
+err = unix(SCI+"/bin/scilab-cli -f ""test_script3.sce""");
+if err == 0 then pause, end
 
-a=[1,2,3];b=[4,5,6];n=3;
-expression="call(''ext1c'',n,1,''i'',a,2,''d'',b,3,''d'',''out'',[1,3],4,''d'')"
-if execstr(expression,'errcatch')==0 then pause,end
-// if we are here, that means that the seg fault did not kill Scilab
-if lasterror()==[] then pause,end
-cd(curDir);