tschwinge@blubber:~/tmp/gdb/HEAD.build $ echo 'void main(void){*(volatile int *)0;}' |
> gcc -o 0 -x c -
<stdin>: In function ‘main’:
<stdin>:1: warning: return type of ‘main’ is not ‘int’
tschwinge@blubber:~/tmp/gdb/HEAD.build $ ./0
Segmentation fault
tschwinge@blubber:~/tmp/gdb/HEAD.build $ gdb/gdb 0
GNU gdb (GDB) 7.0.50.20091111-cvs
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i386-unknown-gnu0.3".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /media/data/home/tschwinge/tmp/gdb/HEAD.build/0...done.
(gdb) r
Starting program: /media/data/home/tschwinge/tmp/gdb/HEAD.build/0 
Can't fetch registers from thread bogus thread id 1: No such thread
(gdb) quit
A debugging session is active.

        Inferior 1 [bogus thread id 0] will be killed.

Quit anyway? (y or n) y
Posted 2009-11-11 18:27:23 UTC Tags: open issue gdb

GDB's gcore command doesn't work / needs to be implemented / ported in GDB:

tschwinge@flubber:~ $ gcore 8371
[New Thread 8371.1]
[New Thread 8371.2]
[New Thread 8371.3]
/media/data/home/tschwinge/core.cA0ICY:2: Error in sourced command file:
Undefined command: "gcore".  Try "help".
gcore: failed to create core.8371
Posted 2009-10-07 20:21:51 UTC Tags: open issue gdb
(gdb) r
Starting program: /media/data/home/tschwinge/tmp/h 
[New Thread 26731.15]

Breakpoint 1, 0x08048236 in main ()
(gdb) info threads
  5 Thread 26731.15  0x080a97fc in mach_msg_trap ()
* 4 Thread 26731.14  0x08048236 in main ()
(gdb) thread 5
[Switching to thread 5 (Thread 26731.15)]#0  0x080a97fc in mach_msg_trap ()
(gdb) bt
#0  0x080a97fc in mach_msg_trap ()
#1  0x080a272e in mach_msg ()
#2  0x080a9934 in mach_msg_server_timeout ()
#3  0x080a99ff in mach_msg_server ()
#4  0x080a327e in _hurd_msgport_receive ()
Cannot access memory at address 0x1012000
Posted 2009-07-30 14:34:37 UTC Tags: open issue gdb

Here's a log of a GDB testsuite run; this is from 2009-07-20 HEAD sources.

make[1]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
Making check in doc
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/doc'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/doc'
Making check in po
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/po'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/po'
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
Making check in po
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes/po'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes/po'
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/etc'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/etc'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/intl'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/intl'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libdecnumber'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libdecnumber'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty'
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty/testsuite'
gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../HEAD/src/libiberty/testsuite/../../include  -o test-demangle \
        ../../../HEAD/src/libiberty/testsuite/test-demangle.c ../libiberty.a
./test-demangle < ../../../HEAD/src/libiberty/testsuite/demangle-expected
./test-demangle: 777 tests, 0 failures
gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../HEAD/src/libiberty/testsuite/../../include  -DHAVE_CONFIG_H -I.. -o test-pexecute \
        ../../../HEAD/src/libiberty/testsuite/test-pexecute.c ../libiberty.a
./test-pexecute
gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../HEAD/src/libiberty/testsuite/../../include  -DHAVE_CONFIG_H -I.. -o test-expandargv \
        ../../../HEAD/src/libiberty/testsuite/test-expandargv.c ../libiberty.a
./test-expandargv
PASS: test-expandargv-0.
PASS: test-expandargv-1.
PASS: test-expandargv-2.
PASS: test-expandargv-3.
make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty/testsuite'
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/readline'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/readline'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/sim'
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/sim'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb'
make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite'
make -k check-gdb.base1 check-gdb.base2 check-gdb.ada check-gdb.arch check-gdb.asm check-gdb.cp check-gdb.disasm check-gdb.dwarf2 check-gdb.fortran check-gdb.gdb check-gdb.java check-gdb.mi check-gdb.modula2 check-gdb.objc check-gdb.opt check-gdb.pascal check-gdb.python check-gdb.reverse check-gdb.server check-gdb.stabs check-gdb.threads check-gdb.trace check-gdb.xml; \
    /bin/sh ../../../HEAD/src/gdb/testsuite/dg-extract-results.sh \
      gdb.base1/gdb.sum gdb.base2/gdb.sum gdb.ada/gdb.sum gdb.arch/gdb.sum gdb.asm/gdb.sum gdb.cp/gdb.sum gdb.disasm/gdb.sum gdb.dwarf2/gdb.sum gdb.fortran/gdb.sum gdb.gdb/gdb.sum gdb.java/gdb.sum gdb.mi/gdb.sum gdb.modula2/gdb.sum gdb.objc/gdb.sum gdb.opt/gdb.sum gdb.pascal/gdb.sum gdb.python/gdb.sum gdb.reverse/gdb.sum gdb.server/gdb.sum gdb.stabs/gdb.sum gdb.threads/gdb.sum gdb.trace/gdb.sum gdb.xml/gdb.sum > gdb.sum; \
    /bin/sh ../../../HEAD/src/gdb/testsuite/dg-extract-results.sh -L \
      gdb.base1/gdb.log gdb.base2/gdb.log gdb.ada/gdb.log gdb.arch/gdb.log gdb.asm/gdb.log gdb.cp/gdb.log gdb.disasm/gdb.log gdb.dwarf2/gdb.log gdb.fortran/gdb.log gdb.gdb/gdb.log gdb.java/gdb.log gdb.mi/gdb.log gdb.modula2/gdb.log gdb.objc/gdb.log gdb.opt/gdb.log gdb.pascal/gdb.log gdb.python/gdb.log gdb.reverse/gdb.log gdb.server/gdb.log gdb.stabs/gdb.log gdb.threads/gdb.log gdb.trace/gdb.log gdb.xml/gdb.log > gdb.log
make[4]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite'
Nothing to be done for all...
Making a new config file...
rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest gdb.base/a2-run.exp gdb.base/advance.exp gdb.base/all-bin.exp gdb.base/annota1.exp gdb.base/annota3.exp gdb.base/args.exp gdb.base/arithmet.exp gdb.base/arrayidx.exp gdb.base/assign.exp gdb.base/async.exp gdb.base/attach.exp gdb.base/auxv.exp gdb.base/bang.exp gdb.base/bfp-test.exp gdb.base/bigcore.exp gdb.base/bitfields.exp gdb.base/bitfields2.exp gdb.base/bitops.exp gdb.base/break-always.exp gdb.base/break.exp gdb.base/breakpoint-shadow.exp gdb.base/call-ar-st.exp gdb.base/call-rt-st.exp gdb.base/call-sc.exp gdb.base/call-signal-resume.exp gdb.base/call-strs.exp gdb.base/callexit.exp gdb.base/callfuncs.exp gdb.base/charset.exp gdb.base/checkpoint.exp gdb.base/chng-syms.exp gdb.base/code-expr.exp gdb.base/commands.exp gdb.base/completion.exp gdb.base/complex.exp gdb.base/cond-expr.exp gdb.base/condbreak.exp gdb.base/consecutive.exp gdb.base/constvars.exp gdb.base/corefile.exp gdb.base/cursal.exp gdb.base/cvexpr.exp gdb.base/dbx.exp gdb.base/default.exp gdb.base/define.exp gdb.base/del.exp gdb.base/detach.exp gdb.base/dfp-exprs.exp gdb.base/dfp-test.exp gdb.base/display.exp gdb.base/dump.exp gdb.base/echo.exp gdb.base/ena-dis-br.exp gdb.base/ending-run.exp gdb.base/environ.exp gdb.base/eval-skip.exp gdb.base/exe-lock.exp gdb.base/expand-psymtabs.exp gdb.base/exprs.exp gdb.base/fileio.exp gdb.base/find.exp gdb.base/finish.exp gdb.base/fixsection.exp gdb.base/float.exp gdb.base/foll-exec.exp gdb.base/foll-fork.exp gdb.base/foll-vfork.exp gdb.base/frame-args.exp gdb.base/freebpcmd.exp gdb.base/fullname.exp gdb.base/funcargs.exp gdb.base/gcore-buffer-overflow.exp gdb.base/gcore.exp gdb.base/gdb1056.exp gdb.base/gdb1090.exp gdb.base/gdb1250.exp gdb.base/gdb1555.exp gdb.base/gdb1821.exp gdb.base/gdbvars.exp gdb.base/hashline1.exp gdb.base/hashline2.exp gdb.base/hashline3.exp gdb.base/help.exp gdb.base/hook-stop-continue.exp gdb.base/hook-stop-frame.exp gdb.base/huge.exp gdb.base/ifelse.exp gdb.base/included.exp gdb.base/infnan.exp gdb.base/info-proc.exp gdb.base/info-target.exp gdb.base/interp.exp gdb.base/interrupt.exp gdb.base/jump.exp gdb.base/langs.exp gdb.base/lineinc.exp gdb.base/list.exp gdb.base/logical.exp gdb.base/long_long.exp gdb.base/longjmp.exp gdb.base/macscp.exp gdb.base/maint.exp gdb.base/mips_pro.exp gdb.base/miscexprs.exp gdb.base/multi-forks.exp --outdir gdb.base1 
Test Run By tschwinge on Mon Jul 20 12:26:55 2009
Native configuration is i386-unknown-gnu0.3

        === gdb tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gcore.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/exe-lock.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/complex.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdbvars.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/condbreak.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/detach.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/breakpoint-shadow.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/bigcore.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/jump.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/multi-forks.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/frame-args.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/dbx.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/echo.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/all-bin.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/bitfields2.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1821.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/environ.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/infnan.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/advance.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/commands.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/callfuncs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/define.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/foll-fork.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/auxv.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/interrupt.exp ...
FAIL: gdb.base/interrupt.exp: Send Control-C, second time
FAIL: gdb.base/interrupt.exp: send end of file
Running ../../../HEAD/src/gdb/testsuite/gdb.base/a2-run.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-signal-resume.exp ...
FAIL: gdb.base/call-signal-resume.exp: dummy stack frame number
XPASS: gdb.base/call-signal-resume.exp: frame
FAIL: gdb.base/call-signal-resume.exp: continue to breakpoint at stop_two
FAIL: gdb.base/call-signal-resume.exp: continue to receipt of signal (timeout)
FAIL: gdb.base/call-signal-resume.exp: break null_hand_call (timeout)
FAIL: gdb.base/call-signal-resume.exp: null_hand_call (timeout)
FAIL: gdb.base/call-signal-resume.exp: dummy stack frame number
FAIL: gdb.base/call-signal-resume.exp: set confirm off (timeout)
FAIL: gdb.base/call-signal-resume.exp: return (timeout)
FAIL: gdb.base/call-signal-resume.exp: break handle_signal (timeout)
FAIL: gdb.base/call-signal-resume.exp: continue to breakpoint at handle_signal (timeout)
FAIL: gdb.base/call-signal-resume.exp: continue to program exit (timeout)
Running ../../../HEAD/src/gdb/testsuite/gdb.base/hashline2.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/async.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/callexit.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/freebpcmd.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/corefile.exp ...
WARNING: can't generate a core file - core tests suppressed - check ulimit -c
Running ../../../HEAD/src/gdb/testsuite/gdb.base/hook-stop-frame.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/info-proc.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/arithmet.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-sc.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/info-target.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/expand-psymtabs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/checkpoint.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/cond-expr.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/consecutive.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/help.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/finish.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/lineinc.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/annota1.exp ...
FAIL: gdb.base/annota1.exp: run until main breakpoint
FAIL: gdb.base/annota1.exp: send SIGUSR1 (timeout)
FAIL: gdb.base/annota1.exp: backtrace @ signal handler (timeout)
FAIL: gdb.base/annota1.exp: delete bp 1 (timeout)
FAIL: gdb.base/annota1.exp: delete bp 2 (timeout)
FAIL: gdb.base/annota1.exp: delete bp 3 (timeout)
FAIL: gdb.base/annota1.exp: break at 28 (timeout)
FAIL: gdb.base/annota1.exp: set up display (timeout)
FAIL: gdb.base/annota1.exp: re-run (timeout)
FAIL: gdb.base/annota1.exp: break at 46 (timeout)
FAIL: gdb.base/annota1.exp: ignore 5 4 (timeout)
FAIL: gdb.base/annota1.exp: annotate ignore count change (timeout)
FAIL: gdb.base/annota1.exp: next to exit loop
FAIL: gdb.base/annota1.exp: breakpoint ignore count (timeout)
FAIL: gdb.base/annota1.exp: signal sent (timeout)
FAIL: gdb.base/annota1.exp: thread switch (timeout)
Running ../../../HEAD/src/gdb/testsuite/gdb.base/logical.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/fixsection.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/annota3.exp ...
FAIL: gdb.base/annota3.exp: send SIGUSR1 (pattern 4) (timeout)
FAIL: gdb.base/annota3.exp: backtrace @ signal handler (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: delete bp 1 (pattern 1 + sentinel) (timeout)
FAIL: gdb.base/annota3.exp: delete bp 2 (pattern 1 + sentinel) (timeout)
FAIL: gdb.base/annota3.exp: delete bp 3 (pattern 1 + sentinel) (timeout)
FAIL: gdb.base/annota3.exp: break at 28 (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: set up display (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: re-run (timeout)
FAIL: gdb.base/annota3.exp: break at 46 (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: ignore 5 4 (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: annotate ignore count change (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: next to exit loop (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: breakpoint ignore count (pattern 1) (timeout)
FAIL: gdb.base/annota3.exp: signal sent (pattern 1) (timeout)
Running ../../../HEAD/src/gdb/testsuite/gdb.base/args.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/hook-stop-continue.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/display.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/ifelse.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1056.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/bitops.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/completion.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/list.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/long_long.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/bang.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/mips_pro.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/dfp-exprs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/interp.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/exprs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/ena-dis-br.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/langs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/hashline1.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/assign.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-strs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/default.exp ...
FAIL: gdb.base/default.exp: show convenience
Running ../../../HEAD/src/gdb/testsuite/gdb.base/dump.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/hashline3.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/foll-exec.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/ending-run.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/dfp-test.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/fileio.exp ...
FAIL: gdb.base/fileio.exp: Stat a NULL pathname returns ENOENT or EFAULT
FAIL: gdb.base/fileio.exp: Stat an empty pathname returns ENOENT
FAIL: gdb.base/fileio.exp: Stat a nonexistant file returns ENOENT (the program is no longer running)
FAIL: gdb.base/fileio.exp: Fstat an open file (the program is no longer running)
FAIL: gdb.base/fileio.exp: Fstat an invalid file descriptor returns EBADF (the program is no longer running)
FAIL: gdb.base/fileio.exp: Isatty (stdin) (the program is no longer running)
FAIL: gdb.base/fileio.exp: Isatty (stdout) (the program is no longer running)
FAIL: gdb.base/fileio.exp: Isatty (stderr) (the program is no longer running)
FAIL: gdb.base/fileio.exp: Isatty (invalid fd) (the program is no longer running)
FAIL: gdb.base/fileio.exp: Isatty (open file) (the program is no longer running)
FAIL: gdb.base/fileio.exp: System says shell is available (the program is no longer running)
FAIL: gdb.base/fileio.exp: System(3) call (the program is no longer running)
FAIL: gdb.base/fileio.exp: System with invalid command returns 127 (the program is no longer running)
FAIL: gdb.base/fileio.exp: Rename a file (the program is no longer running)
FAIL: gdb.base/fileio.exp: Renaming a file to existing directory returns EISDIR (the program is no longer running)
FAIL: gdb.base/fileio.exp: Renaming a directory to a non-empty directory returns ENOTEMPTY or EEXIST (the program is no longer running)
FAIL: gdb.base/fileio.exp: Renaming a directory to a subdir of itself returns EINVAL (the program is no longer running)
FAIL: gdb.base/fileio.exp: Renaming a nonexistant file returns ENOENT (the program is no longer running)
FAIL: gdb.base/fileio.exp: Unlink a file (the program is no longer running)
FAIL: gdb.base/fileio.exp: Unlinking a file in a directory w/o write access returns EACCES (the program is no longer running)
FAIL: gdb.base/fileio.exp: Unlinking a nonexistant file returns ENOENT (the program is no longer running)
FAIL: gdb.base/fileio.exp: Time(2) call returns the same value as in parameter (the program is no longer running)
FAIL: gdb.base/fileio.exp: Time(2) returns feasible values (the program is no longer running)
Running ../../../HEAD/src/gdb/testsuite/gdb.base/huge.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/find.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/eval-skip.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/arrayidx.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1555.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/attach.exp ...
FAIL: gdb.base/attach.exp: attach to nonsense is prohibited (bogus pid allowed)
FAIL: gdb.base/attach.exp: attach to nonexistent process is prohibited
FAIL: gdb.base/attach.exp: attach1, after setting file
FAIL: gdb.base/attach.exp: attach1 detach
FAIL: gdb.base/attach.exp: set file, before attach2
FAIL: gdb.base/attach.exp: after attach2, set tbreak postloop
FAIL: gdb.base/attach.exp: (timeout) after attach2, reach tbreak postloop
FAIL: gdb.base/attach.exp: after attach2, exit (timeout)
FAIL: gdb.base/attach.exp: set source path (the program is no longer running)
FAIL: gdb.base/attach.exp: cd away from process working directory
FAIL: gdb.base/attach.exp: before attach3, flush symbols
FAIL: gdb.base/attach.exp: before attach3, flush exec
FAIL: gdb.base/attach.exp: attach when process' a.out not in cwd
FAIL: gdb.base/attach.exp: after attach3, exit
FAIL: gdb.base/attach.exp: attach call
FAIL: gdb.base/attach.exp: c
Running ../../../HEAD/src/gdb/testsuite/gdb.base/break.exp ...
FAIL: gdb.base/break.exp: breakpoint at start of multi line while conditional
FAIL: gdb.base/break.exp: breakpoint info
Running ../../../HEAD/src/gdb/testsuite/gdb.base/del.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/miscexprs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/float.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/longjmp.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/code-expr.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/included.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-ar-st.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/cvexpr.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/maint.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/funcargs.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/chng-syms.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/foll-vfork.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/charset.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/cursal.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/break-always.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-rt-st.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/constvars.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/fullname.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1250.exp ...
FAIL: gdb.base/gdb1250.exp: running to abort in runto
Running ../../../HEAD/src/gdb/testsuite/gdb.base/bfp-test.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/bitfields.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/macscp.exp ...
Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1090.exp ...

        === gdb Summary ===

# of expected passes        3876
# of unexpected failures    86
# of unexpected successes   1
# of expected failures      6
# of known failures     19
# of untested testcases     1
# of unsupported tests      4
/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version  6.8.50.20090720-cvs -nw -nx 
Posted 2009-07-20 13:09:12 UTC Tags: open issue gdb

Given an a.out executable that only does raise (SIGABRT), invoking that one...

  • ... against crash-dump-core will...

    • ... not overwrite existing core files.

      Is this reasonable? Linux does overwrite them, for example.

    • ... show big variances in running-time behavior:

      $ TIMEFORMAT='real %R user %U system %S'
      $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
      Aborted (core dumped)
      real 1.350 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 21:59 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
      Aborted (core dumped)
      real 22.771 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 21:59 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
      Aborted (core dumped)
      real 1.367 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:00 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
      Aborted (core dumped)
      real 5.789 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:00 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
      Aborted (core dumped)
      real 22.664 user 0.010 system 0.000
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:01 core
      
    • ... produce a huge core file:

      $ du -hs core 
      17M     core
      

      On Linux, the core file occupies 76 KiB of disk space, which seems much more reasonable.

    • ... produce an invalid core file:

      $ gdb a.out core
      warning: core file may not match specified executable file.
      [New Thread 76651]
      
      
      warning: Wrong size fpregset in core file.
      Reading symbols from /lib/libc.so.0.3...[...]
      Core was generated by `./a.out'.
      Program terminated with signal 6, Aborted.
      
      
      warning: Wrong size fpregset in core file.
      #0  0x00000000 in ?? ()
      (gdb) bt
      #0  0x00000000 in ?? ()
      Cannot access memory at address 0x17
      

      Probably the crash server code and GDB are out of sync.

  • ... against crash-suspend will...

    • ... not work at all:

      $ CRASHSERVER=/servers/crash-suspend ./a.out
      $ [returns to the shell and doesn't suspended]
      
    • ... show big variances in running-time behavior:

      $ TIMEFORMAT='real %R user %U system %S'
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 1.381 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:04 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 1.332 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:04 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 21.228 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:04 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 1.323 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:05 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 22.279 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:05 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 1.362 user 0.000 system 0.000
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:08 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 21.110 user 0.000 system 0.000
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:08 core
      $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted (core dumped)
      real 1.350 user 0.000 system 0.020
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:08 core
      
    • ... can reliably crash GNU Mach:

      This happens if a core file is already present (and won't get overwritten; see above). I reproduced this three times.

      $ TIMEFORMAT='real %R user %U system %S'
      $ time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
      Aborted
      real 2.856 user 0.000 system 0.010
      -rw------- 1 tschwinge tschwinge 17031168 Jul  7 22:08 core
      
      
      panic: zalloc: zone kalloc.8192 exhausted
      Kernel Breakpoint trap, eip 0x20020a77
      Stopped at  0x20020a76: int     $3
      db> trace
      0x20020a76(2006aba8,4d0f7e9c,200209b0,0,0)
      0x20020a4d(2006b094,2006ae40,2000,20016803,4a5f4114)
      0x2002bca5(49a03564,1,0,9,1000)
      0x20022f4c(2000,4a5f45d4,4a84879c,49a46564,4ac43e78)
      0x20021e65(4ac43e78,4a5f45d4,4a5f4114,0,0)
      0x2005309d(2106ba9c,3,38,28,1783)
      Bad frame pointer: 0x2106ba78
      
      
      $ addr2line -i -f -e /boot/gnumach-xen 0x20020a76 0x20020a4d 0x2002bca5 0x20022f4c 0x20021e65 0x2005309d
      Debugger
      /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/debug.c:105
      panic
      /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/debug.c:148
      zalloc
      /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/zalloc.c:470
      kalloc
      /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/kalloc.c:185
      ipc_kobject_server
      /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/ipc_kobject.c:76
      mach_msg_trap
      /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/ipc/mach_msg.c:1367
      
Posted 2009-07-07 20:38:38 UTC Tags: open issue gdb

GNU GDB's gnu-nat.c doesn't support non-stop mode.

Also, from http://lists.gnu.org/archive/html/bug-hurd/2008-10/msg00045.html, GNU GDB's Pedro Alves:

I also notice that when going through the shell in non-stop mode, it would be more correct to resume all threads --- we don't want non-stop and its scheduler-locking to apply to the shell. Basically, non-stop should be off if there are pending execs. This was an existing issue, and doesn't affect linux today, so I'll just ignore that for now, as it needs more tweaking to fix.

Posted 2008-10-14 15:43:35 UTC Tags: open issue gdb
License:

GFDL 1.2+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.

http://lists.gnu.org/archive/html/bug-hurd/2008-10/msg00045.html:

GNU GDB's Ulrich Weigand:

Hmm. It would appear that "set exec-wrapper" is currently broken with the gnu-nat.c target, right?

GNU GDB's Pedro Alves:

Yeah, it appears so. Don't know if it's possible to get rid of the local pending execs handling in gnu-nat.c. An alternative would be to make pending_execs a property of inferior.h:struct inferior' instead of of gnu-nat.c:struct inf'.

Posted 2008-10-14 15:40:10 UTC Tags: open issue gdb
License:

GFDL 1.2+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.

GNU GDB's Pedro Alves:

One thing I asked myself was, if gnu-nat.c couldn't be using the port's id as thread ids instead of a locally auto-generated number. Maybe the thread id of the main thread would be preserved across execs this way

Posted 2008-10-13 23:27:18 UTC Tags: open issue gdb
License:

GFDL 1.2+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.

gdb
Posted 2007-11-16 17:59:27 UTC
License:

GFDL 1.2+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.