aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-01-10 10:32:29 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-01-10 10:32:29 +0100
commit59c615478de5b0f61ee750b8e0d21b5219407aba (patch)
tree550bc7bc9b4570e704884fbcbc582171d7640372
parentfa8df9de515273951daae9534b72b6139efe539c (diff)
downloadgcc-59c615478de5b0f61ee750b8e0d21b5219407aba.zip
gcc-59c615478de5b0f61ee750b8e0d21b5219407aba.tar.gz
gcc-59c615478de5b0f61ee750b8e0d21b5219407aba.tar.bz2
re PR fortran/51197 (Backtrace information less useful)
2012-01-10 Tobias Burnus <burnus@net-b.de> PR fortran/51197 * runtime/compile_options.c (show_signal): List more signals. From-SVN: r183057
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/runtime/compile_options.c61
2 files changed, 54 insertions, 13 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index c399dbe..e82d442 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-01-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/51197
+ * runtime/compile_options.c (show_signal): List
+ more signals.
+
2012-01-09 Harald Anlauf <anlauf@gmx.de>
Tobias Burnus <burnus@net-b.de>
diff --git a/libgfortran/runtime/compile_options.c b/libgfortran/runtime/compile_options.c
index 8038f07..0e657f7 100644
--- a/libgfortran/runtime/compile_options.c
+++ b/libgfortran/runtime/compile_options.c
@@ -43,37 +43,72 @@ show_signal (int signum)
switch (signum)
{
-#if defined(SIGSEGV)
+#if defined(SIGQUIT)
+ case SIGQUIT:
+ name = "SIGQUIT";
+ desc = "Terminal quit signal";
+ break;
+#endif
+
+ /* The following 4 signals are defined by C89. */
+ case SIGILL:
+ name = "SIGILL";
+ desc = "Illegal instruction";
+ break;
+
+ case SIGABRT:
+ name = "SIGABRT";
+ desc = "Process abort signal";
+ break;
+
+ case SIGFPE:
+ name = "SIGFPE";
+ desc = "Floating-point exception - erroneous arithmetic operation";
+ break;
+
case SIGSEGV:
name = "SIGSEGV";
- desc = "Segmentation fault";
+ desc = "Segmentation fault - invalid memory reference";
break;
-#endif
#if defined(SIGBUS)
case SIGBUS:
name = "SIGBUS";
- desc = "Bus error";
+ desc = "Access to an undefined portion of a memory object";
break;
#endif
-#if defined(SIGILL)
- case SIGILL:
- name = "SIGILL";
- desc = "Illegal instruction";
+#if defined(SIGSYS)
+ case SIGSYS:
+ name = "SIGSYS";
+ desc = "Bad system call";
break;
#endif
-#if defined(SIGFPE)
- case SIGFPE:
- name = "SIGFPE";
- desc = "Floating-point exception";
+#if defined(SIGTRAP)
+ case SIGTRAP:
+ name = "SIGTRAP";
+ desc = "Trace/breakpoint trap";
+ break;
+#endif
+
+#if defined(SIGXCPU)
+ case SIGXCPU:
+ name = "SIGXCPU";
+ desc = "CPU time limit exceeded";
+ break;
+#endif
+
+#if defined(SIGXFSZ)
+ case SIGXFSZ:
+ name = "SIGXFSZ";
+ desc = "File size limit exceeded";
break;
#endif
}
if (name)
- st_printf ("\nProgram received signal %d (%s): %s.\n", signum, name, desc);
+ st_printf ("\nProgram received signal %s: %s.\n", name, desc);
else
st_printf ("\nProgram received signal %d.\n", signum);
}