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 - snwint@suse.de + +- 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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org