Hello community,

here is the log from the commit of package linuxrc for openSUSE:Factory
checked in at Tue Aug 9 16:25:48 CEST 2011.



--------
--- linuxrc/linuxrc.changes     2011-02-24 11:20:49.000000000 +0100
+++ /mounts/work_src_done/STABLE/linuxrc/linuxrc.changes        2011-08-09 
11:34:33.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Aug  9 11:34:21 CEST 2011 - [email protected]
+
+- print backtrace when we get a segfault
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  linuxrc-3.5.10.tar.bz2

New:
----
  linuxrc-3.5.11.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.FUTcm7/_old  2011-08-09 16:25:24.000000000 +0200
+++ /var/tmp/diff_new_pack.FUTcm7/_new  2011-08-09 16:25:24.000000000 +0200
@@ -24,9 +24,9 @@
 Group:          System/Boot
 AutoReqProv:    on
 Summary:        SUSE Installation Program
-Version:        3.5.10
+Version:        3.5.11
 Release:        1
-Source:         linuxrc-3.5.10.tar.bz2
+Source:         linuxrc-3.5.11.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description

++++++ linuxrc-3.5.10.tar.bz2 -> linuxrc-3.5.11.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-3.5.10/VERSION new/linuxrc-3.5.11/VERSION
--- old/linuxrc-3.5.10/VERSION  2011-02-24 11:20:34.000000000 +0100
+++ new/linuxrc-3.5.11/VERSION  2011-08-09 11:34:16.000000000 +0200
@@ -1 +1 @@
-3.5.10
+3.5.11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-3.5.10/changelog new/linuxrc-3.5.11/changelog
--- old/linuxrc-3.5.10/changelog        2011-02-24 11:20:35.000000000 +0100
+++ new/linuxrc-3.5.11/changelog        2011-08-09 11:34:17.000000000 +0200
@@ -1,4 +1,7 @@
-2011-02-24:    HEAD
+2011-08-09:    HEAD
+       - print backtrace when we get a segfault
+
+2011-02-24:    3.5.10
        - fix media check to work with isohybrid images (bnc #674609)
 
 2011-02-17:    3.5.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-3.5.10/linuxrc.c new/linuxrc-3.5.11/linuxrc.c
--- old/linuxrc-3.5.10/linuxrc.c        2011-02-17 15:49:29.000000000 +0100
+++ new/linuxrc-3.5.11/linuxrc.c        2011-08-09 11:33:41.000000000 +0200
@@ -162,6 +162,8 @@
 
   /* maybe we had a segfault recently... */
   if(argc == 4 && !strcmp(argv[1], "segv")) {
+    unsigned state = argv[3][0] - '0';
+
     for(i = 0; i < 16 && argv[2][i]; i++) {
       config.segv_addr <<= 4;
       j = argv[2][i] - '0';
@@ -170,7 +172,9 @@
     }
     config.had_segv = 1;
 
-    if(argv[3][0] == '0') {    /* was not in window mode */
+    config.linemode = (state >> 1) & 1;
+
+    if((state & 1) == 0) {     /* was not in window mode */
       fprintf(stderr, "\n\nLinuxrc crashed. :-((\nPress ENTER to continue.\n");
       printf("\n\nLinuxrc crashed. :-((\nPress ENTER to continue.\n");
       fflush(stdout);
@@ -642,6 +646,8 @@
   ip = scp.sc_fpc_eir;
 #endif
 
+  util_error_trace("***  signal 11 ***\n");
+
   fprintf(stderr, "Linuxrc segfault at 0x%08"PRIx64". :-((\n", ip);
   if(config.restart_on_segv) {
     config.restart_on_segv = 0;
@@ -651,7 +657,7 @@
       addr[i] = j + '0';
     }
     addr[16] = 0;
-    state[0] = config.win ? '1' : '0';
+    state[0] = (config.win + (config.linemode << 1)) + '0';
     state[1] = 0;
     kbd_end(1);                /* restore terminal settings */
     execl(*config.argv, "init", "segv", addr, state, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-3.5.10/util.c new/linuxrc-3.5.11/util.c
--- old/linuxrc-3.5.10/util.c   2011-02-17 15:49:29.000000000 +0100
+++ new/linuxrc-3.5.11/util.c   2011-08-09 11:33:41.000000000 +0200
@@ -4907,6 +4907,8 @@
 
 void util_error_trace(char *format, ...)
 {
+  void *buffer[64], **p;
+  int nptrs;
   va_list args;
 
   if(!config.error_trace) return;
@@ -4915,10 +4917,12 @@
   vfprintf(stderr, format, args);
   va_end(args);
   
-  void *buffer[100];
-  int nptrs;
   nptrs = backtrace(buffer, 100);
-  backtrace_symbols_fd(buffer, nptrs, STDERR_FILENO);
+  p = buffer;
+  if(nptrs > 1) nptrs--, p++;
+  backtrace_symbols_fd(p, nptrs, STDERR_FILENO);
+
+  fprintf(stderr, "--------\n");
 }
 
 


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to