RE: symbolic debug of loadable modules with kgdb light

Caz Yokoyama
2009-10-01T20:13:49Z

[-- Attachment #1: Type: text/plain, Size: 4532 bytes --]

Here is the test result. There is no difference between with and without the
modification in gdb/remote.c

One thing I aware is that make returns "Error 1" and "Error 2". This is the
expected outcome, isn't this?
....
make[2]: *** [check-single] Error 1
make[2]: Leaving directory
`/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb/testsuite'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb'
make: *** [check-gdb] Error 2
-caz

-----Original Message-----
From: Joel Brobecker [mailto:brobecker@adacore.com]
Sent: Thursday, October 01, 2009 9:34 AM
To: Caz Yokoyama
Cc: 'Eli Zaretskii'; pedro@codesourcery.com; gdb-patches@sourceware.org
Subject: Re: symbolic debug of loadable modules with kgdb light

Regarding testing, since you are modifying remote.c, you'll need to run
the testsuite using gdbserver. The testsuite needs to be run before
and after the patch, in order to compare the results. Normally, there
should be no regression. Directions on how to do that are explained at
http://sourceware.org/gdb/wiki/TestingGDB (see Testing gdbserver in a
native configuration). Please indicate when you submit patches that
you ran the testsuite, and that you found no regression.

> + * remote.c (interrupt_sequence_control_c)
> + (interrupt_sequence_break, interrupt_sequence_sysrq_g)
> + (interrupt_sequence_modes): New constants.
> + (interrupt_sequence_mode, interrupt_on_connect): New variable.
> + (show_interrupt_sequence): New function.
> + (set_remotebreak, show_remotebreak): New function.
> + (send_interrupt_sequence: New function.
> + (remote_start_remote): Call send_interrupt_sequence if
interrupt_on_connect.
> + (remote_stop_as): Call send_interrupt_sequence.
> + (_initialize_remote): Add interrupt-sequence and
interrupt-on-connect,
> + modify remotebreak to call set_remotebreak and show_remotebreak.

Just a few formatting nits left: The ChangeLog entries needs to be
indented using tabs. You're mixing spaces and tabs. You're missing
a closing parenthesis after send_interrupt_sequence and the line just
after is too long (maximum is 79 or 80 characters).

> +set remote interrupt-sequence [Ctrl-C | BREAK | SysRq-g]

You changed the user interface again, this is really fustrating.
Personally, I don't care anymore what names we use for these options
and I can see why you prefer them, but since we're changing them again,
please ask Daniel Jacobowitz and Pedro Alves, who are the major
maintainers and regular users of this code, whether they are OK
with your choices.

In the future, I would really appreciate if we agreed on the user
interface first, without considering code while doing that, and then
stay with what we've agreed on. Otherwise, things keep changing every
time I look at a patch, and we both waste valuable time.

That being said, we're getting there.

> +/* This boolean variable specifies whether interrupt_sequence is sent
> + to remote target when gdb starts. This is mostly needed when you debug
> + Linux kernel. Linux kernel expects BREAK g which is Magic SysRq for
> + connecting gdb. */

Formatting: 2 spaces after each of the 2 periods.

> @@ -8993,6 +9073,10 @@
> _initialize_remote (void)
> {
> struct remote_state *rs;
> + struct cmd_list_element *cmd;
> + /* I can't use the same string for lookup_cmd(). Cause segment fault.
*/
> + static char *_set_remotebreak_ = "remotebreak";
> + static char *_show_remotebreak_ = "remotebreak";

Try this instead:

char *cmd_name;

cmd_name = "remotebreak";
cmd = lookup_cmd (&cmd_name, setlist, "", -1, 1);
deprecate_cmd (cmd, "set remote interrupt-sequence");
cmd_name = "remotebreak";
cmd = lookup_cmd (&cmd_name, showlist, "", -1, 1);
deprecate_cmd (cmd, "show remote interrupt-sequence");

The reason why you're getting the SEGV is because lookup_cmd updates
the pointer your passing to point after the command name it has matched.

> - add_setshow_boolean_cmd ("remotebreak", no_class, &remote_break, _("\
> -Set whether to send break if interrupted."), _("\
> -Show whether to send break if interrupted."), _("\
> + add_setshow_boolean_cmd ("remotebreak", class_obscure, &remote_break,
_("\
> +Deprecated. Use \"set remote interrupt-sequence [control-c|break]\"
instead."), _("\
> +Deprecated. Use \"show remote interrupt-sequence\" instead."), _("\

Please undo this part of the change. You do NOT need to update the command
documentation for "set/show remotebreak", since this is already taken care

--
Joel

[-- Attachment #2: interrupt-sequence.diff --]
[-- Type: application/octet-stream, Size: 104 bytes --]

5c5
< Test Run By caz on Thu Oct 1 12:54:36 2009
---
> Test Run By caz on Thu Oct 1 12:35:41 2009

[-- Attachment #3: interrupt-sequence.log --]
[-- Type: application/octet-stream, Size: 25202 bytes --]

make[1]: Entering directory `/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb'
make[2]: Entering directory `/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb/testsuite'
Nothing to be done for all...
rootme=`pwd`; export rootme; srcdir=. ; 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 --target_board native-gdbserver
Test Run By caz on Thu Oct 1 12:35:41 2009
Native configuration is x86_64-unknown-linux-gnu

=== gdb tests ===

Schedule of variations:
native-gdbserver

Running target native-gdbserver
Using /home/caz/lightfleet/kgdb/testing/boards/native-gdbserver.exp as board description file for target.
Using ./config/gdbserver.exp as tool-and-target-specific interface file.
Running ./gdb.ada/array_bounds.exp ...
Running ./gdb.ada/array_return.exp ...
Running ./gdb.ada/array_subscript_addr.exp ...
Running ./gdb.ada/arrayidx.exp ...
Running ./gdb.ada/arrayparam.exp ...
Running ./gdb.ada/arrayptr.exp ...
Running ./gdb.ada/assign_1.exp ...
Running ./gdb.ada/atomic_enum.exp ...
Running ./gdb.ada/boolean_expr.exp ...
Running ./gdb.ada/catch_ex.exp ...
Running ./gdb.ada/char_param.exp ...
Running ./gdb.ada/complete.exp ...
Running ./gdb.ada/exec_changed.exp ...
Running ./gdb.ada/exprs.exp ...
Running ./gdb.ada/fixed_cmp.exp ...
Running ./gdb.ada/fixed_points.exp ...
Running ./gdb.ada/formatted_ref.exp ...
Running ./gdb.ada/frame_args.exp ...
Running ./gdb.ada/fun_addr.exp ...
Running ./gdb.ada/fun_in_declare.exp ...
Running ./gdb.ada/funcall_param.exp ...
Running ./gdb.ada/homonym.exp ...
Running ./gdb.ada/int_deref.exp ...
Running ./gdb.ada/interface.exp ...
Running ./gdb.ada/lang_switch.exp ...
Running ./gdb.ada/mod_from_name.exp ...
Running ./gdb.ada/nested.exp ...
Running ./gdb.ada/null_array.exp ...
Running ./gdb.ada/null_record.exp ...
Running ./gdb.ada/packed_array.exp ...
Running ./gdb.ada/packed_tagged.exp ...
Running ./gdb.ada/print_chars.exp ...
Running ./gdb.ada/print_pc.exp ...
Running ./gdb.ada/ptype_arith_binop.exp ...
Running ./gdb.ada/ptype_field.exp ...
Running ./gdb.ada/ref_param.exp ...
Running ./gdb.ada/ref_tick_size.exp ...
Running ./gdb.ada/start.exp ...
Running ./gdb.ada/str_ref_cmp.exp ...
Running ./gdb.ada/sym_print_name.exp ...
Running ./gdb.ada/taft_type.exp ...
Running ./gdb.ada/tagged.exp ...
Running ./gdb.ada/tasks.exp ...
Running ./gdb.ada/tick_last_segv.exp ...
Running ./gdb.ada/type_coercion.exp ...
Running ./gdb.ada/uninitialized_vars.exp ...
Running ./gdb.ada/variant_record_packed_array.exp ...
Running ./gdb.ada/watch_arg.exp ...
Running ./gdb.arch/alpha-step.exp ...
Running ./gdb.arch/altivec-abi.exp ...
Running ./gdb.arch/altivec-regs.exp ...
Running ./gdb.arch/amd64-disp-step.exp ...
Running ./gdb.arch/amd64-i386-address.exp ...
Running ./gdb.arch/e500-abi.exp ...
Running ./gdb.arch/e500-prologue.exp ...
Running ./gdb.arch/e500-regs.exp ...
Running ./gdb.arch/gdb1291.exp ...
Running ./gdb.arch/gdb1431.exp ...
Running ./gdb.arch/gdb1558.exp ...
Running ./gdb.arch/i386-bp_permanent.exp ...
Running ./gdb.arch/i386-disp-step.exp ...
Running ./gdb.arch/i386-gnu-cfi.exp ...
Running ./gdb.arch/i386-permbkpt.exp ...
Running ./gdb.arch/i386-prologue.exp ...
Running ./gdb.arch/i386-signal.exp ...
Running ./gdb.arch/i386-size-overlap.exp ...
Running ./gdb.arch/i386-size.exp ...
Running ./gdb.arch/i386-sse.exp ...
Running ./gdb.arch/i386-unwind.exp ...
Running ./gdb.arch/ia64-breakpoint-shadow.exp ...
Running ./gdb.arch/iwmmxt-regs.exp ...
Running ./gdb.arch/pa-nullify.exp ...
Running ./gdb.arch/powerpc-aix-prologue.exp ...
Running ./gdb.arch/powerpc-d128-regs.exp ...
Running ./gdb.arch/powerpc-prologue.exp ...
Running ./gdb.arch/ppc-dfp.exp ...
Running ./gdb.arch/ppc-fp.exp ...
Running ./gdb.arch/ppc64-atomic-inst.exp ...
Running ./gdb.arch/spu-info.exp ...
Running ./gdb.arch/thumb-prologue.exp ...
Running ./gdb.arch/vsx-regs.exp ...
Running ./gdb.asm/asm-source.exp ...
Running ./gdb.base/a2-run.exp ...
Running ./gdb.base/advance.exp ...
Running ./gdb.base/all-bin.exp ...
Running ./gdb.base/annota1.exp ...
Running ./gdb.base/annota3.exp ...
Running ./gdb.base/args.exp ...
Running ./gdb.base/arithmet.exp ...
Running ./gdb.base/arrayidx.exp ...
Running ./gdb.base/assign.exp ...
Running ./gdb.base/async.exp ...
Running ./gdb.base/attach.exp ...
Running ./gdb.base/auxv.exp ...
Running ./gdb.base/bang.exp ...
Running ./gdb.base/bfp-test.exp ...
Running ./gdb.base/bigcore.exp ...
Running ./gdb.base/bitfields.exp ...
Running ./gdb.base/bitfields2.exp ...
Running ./gdb.base/bitops.exp ...
Running ./gdb.base/break-always.exp ...
Running ./gdb.base/break.exp ...
Running ./gdb.base/breakpoint-shadow.exp ...
Running ./gdb.base/call-ar-st.exp ...
Running ./gdb.base/call-rt-st.exp ...
Running ./gdb.base/call-sc.exp ...
Running ./gdb.base/call-signal-resume.exp ...
Running ./gdb.base/call-strs.exp ...
Running ./gdb.base/callexit.exp ...
Running ./gdb.base/callfuncs.exp ...
Running ./gdb.base/catch-syscall.exp ...
Running ./gdb.base/charset.exp ...
Running ./gdb.base/checkpoint.exp ...
Running ./gdb.base/chng-syms.exp ...
Running ./gdb.base/code-expr.exp ...
Running ./gdb.base/commands.exp ...
Running ./gdb.base/completion.exp ...
Running ./gdb.base/complex.exp ...
Running ./gdb.base/cond-expr.exp ...
Running ./gdb.base/condbreak.exp ...
Running ./gdb.base/consecutive.exp ...
Running ./gdb.base/constvars.exp ...
Running ./gdb.base/corefile.exp ...
Running ./gdb.base/cursal.exp ...
Running ./gdb.base/cvexpr.exp ...
Running ./gdb.base/dbx.exp ...
Running ./gdb.base/default.exp ...
WARNING: Skipping backtrace and break tests because of GDB stub.
Running ./gdb.base/define.exp ...
Running ./gdb.base/del.exp ...
Running ./gdb.base/detach.exp ...
Running ./gdb.base/dfp-exprs.exp ...
Running ./gdb.base/dfp-test.exp ...
Running ./gdb.base/display.exp ...
Running ./gdb.base/dump.exp ...
Running ./gdb.base/echo.exp ...
Running ./gdb.base/ena-dis-br.exp ...
Running ./gdb.base/ending-run.exp ...
Running ./gdb.base/environ.exp ...
Running ./gdb.base/eval-skip.exp ...
Running ./gdb.base/exe-lock.exp ...
Running ./gdb.base/expand-psymtabs.exp ...
Running ./gdb.base/exprs.exp ...
Running ./gdb.base/fileio.exp ...
Running ./gdb.base/find.exp ...
Running ./gdb.base/finish.exp ...
Running ./gdb.base/fixsection.exp ...
Running ./gdb.base/float.exp ...
Running ./gdb.base/foll-exec.exp ...
Running ./gdb.base/foll-fork.exp ...
Running ./gdb.base/foll-vfork.exp ...
Running ./gdb.base/frame-args.exp ...
Running ./gdb.base/freebpcmd.exp ...
Running ./gdb.base/fullname.exp ...
Running ./gdb.base/funcargs.exp ...
Running ./gdb.base/gcore-buffer-overflow.exp ...
Running ./gdb.base/gcore.exp ...
Running ./gdb.base/gdb1056.exp ...
Running ./gdb.base/gdb1090.exp ...
Running ./gdb.base/gdb1250.exp ...
Running ./gdb.base/gdb1555.exp ...
Running ./gdb.base/gdb1821.exp ...
Running ./gdb.base/gdbvars.exp ...
Running ./gdb.base/hashline1.exp ...
Running ./gdb.base/hashline2.exp ...
Running ./gdb.base/hashline3.exp ...
Running ./gdb.base/help.exp ...
Running ./gdb.base/hook-stop-continue.exp ...
Running ./gdb.base/hook-stop-frame.exp ...
Running ./gdb.base/huge.exp ...
Running ./gdb.base/ifelse.exp ...
Running ./gdb.base/included.exp ...
Running ./gdb.base/infnan.exp ...
Running ./gdb.base/info-proc.exp ...
Running ./gdb.base/info-target.exp ...
Running ./gdb.base/interp.exp ...
Running ./gdb.base/interrupt.exp ...
Running ./gdb.base/jump.exp ...
Running ./gdb.base/langs.exp ...
Running ./gdb.base/lineinc.exp ...
Running ./gdb.base/list.exp ...
Running ./gdb.base/logical.exp ...
Running ./gdb.base/long_long.exp ...
Running ./gdb.base/longjmp.exp ...
FAIL: gdb.base/longjmp.exp: next over longjmp(1)
FAIL: gdb.base/longjmp.exp: next over call_longjmp (2)
FAIL: gdb.base/longjmp.exp: next over patt3
Running ./gdb.base/macscp.exp ...
FAIL: gdb.base/macscp.exp: info macro FROM_COMMANDLINE
Running ./gdb.base/maint.exp ...
Running ./gdb.base/mips_pro.exp ...
Running ./gdb.base/miscexprs.exp ...
Running ./gdb.base/multi-forks.exp ...
Running ./gdb.base/nodebug.exp ...
Running ./gdb.base/nofield.exp ...
Running ./gdb.base/opaque.exp ...
Running ./gdb.base/overlays.exp ...
Running ./gdb.base/page.exp ...
Running ./gdb.base/pc-fp.exp ...
Running ./gdb.base/pending.exp ...
Running ./gdb.base/pie-support.exp ...
Running ./gdb.base/pointers.exp ...
Running ./gdb.base/prelink.exp ...
Running ./gdb.base/printcmds.exp ...
Running ./gdb.base/prologue.exp ...
Running ./gdb.base/psymtab.exp ...
Running ./gdb.base/ptr-typedef.exp ...
Running ./gdb.base/ptype.exp ...
Running ./gdb.base/radix.exp ...
Running ./gdb.base/randomize.exp ...
Running ./gdb.base/readline.exp ...
Running ./gdb.base/recurse.exp ...
Running ./gdb.base/regs.exp ...
Running ./gdb.base/relational.exp ...
Running ./gdb.base/relativedebug.exp ...
Running ./gdb.base/relocate.exp ...
Running ./gdb.base/remote.exp ...
Running ./gdb.base/remotetimeout.exp ...
Running ./gdb.base/reread.exp ...
Running ./gdb.base/restore.exp ...
Running ./gdb.base/return-nodebug.exp ...
Running ./gdb.base/return.exp ...
Running ./gdb.base/return2.exp ...
Running ./gdb.base/savedregs.exp ...
Running ./gdb.base/scope.exp ...
Running ./gdb.base/sect-cmd.exp ...
Running ./gdb.base/sep.exp ...
Running ./gdb.base/sepdebug.exp ...
Running ./gdb.base/sepsymtab.exp ...
Running ./gdb.base/set-lang-auto.exp ...
Running ./gdb.base/setshow.exp ...
Running ./gdb.base/setvar.exp ...
Running ./gdb.base/shlib-call.exp ...
Running ./gdb.base/shreloc.exp ...
Running ./gdb.base/sigall.exp ...
Running ./gdb.base/sigaltstack.exp ...
Running ./gdb.base/sigbpt.exp ...
Running ./gdb.base/sigchld.exp ...
Running ./gdb.base/siginfo-addr.exp ...
Running ./gdb.base/siginfo-obj.exp ...
Running ./gdb.base/siginfo.exp ...
Running ./gdb.base/signals.exp ...
Running ./gdb.base/signull.exp ...
Running ./gdb.base/sigrepeat.exp ...
Running ./gdb.base/sigstep.exp ...
Running ./gdb.base/sizeof.exp ...
Running ./gdb.base/so-impl-ld.exp ...
Running ./gdb.base/so-indr-cl.exp ...
Running ./gdb.base/solib-disc.exp ...
Running ./gdb.base/solib-display.exp ...
Running ./gdb.base/solib-overlap.exp ...
Running ./gdb.base/solib-symbol.exp ...
Running ./gdb.base/solib-weak.exp ...
Running ./gdb.base/solib.exp ...
Running ./gdb.base/source.exp ...
Running ./gdb.base/stack-checking.exp ...
Running ./gdb.base/start.exp ...
Running ./gdb.base/step-break.exp ...
Running ./gdb.base/step-bt.exp ...
Running ./gdb.base/step-line.exp ...
Running ./gdb.base/step-test.exp ...
Running ./gdb.base/store.exp ...
Running ./gdb.base/structs.exp ...
Running ./gdb.base/structs2.exp ...
Running ./gdb.base/structs3.exp ...
Running ./gdb.base/subst.exp ...
Running ./gdb.base/term.exp ...
Running ./gdb.base/trace-commands.exp ...
Running ./gdb.base/twice.exp ...
Running ./gdb.base/type-opaque.exp ...
Running ./gdb.base/unload.exp ...
Running ./gdb.base/until.exp ...
Running ./gdb.base/unwindonsignal.exp ...
Running ./gdb.base/value-double-free.exp ...
Running ./gdb.base/varargs.exp ...
Running ./gdb.base/volatile.exp ...
Running ./gdb.base/watch_thread_num.exp ...
Running ./gdb.base/watchpoint-hw.exp ...
Running ./gdb.base/watchpoint-solib.exp ...
Running ./gdb.base/watchpoint.exp ...
Running ./gdb.base/watchpoints.exp ...
Running ./gdb.base/whatis-exp.exp ...
Running ./gdb.base/whatis.exp ...
Running ./gdb.cell/arch.exp ...
Running ./gdb.cell/break.exp ...
Running ./gdb.cell/bt.exp ...
Running ./gdb.cell/core.exp ...
Running ./gdb.cell/data.exp ...
Running ./gdb.cell/ea-cache.exp ...
Running ./gdb.cell/ea-standalone.exp ...
Running ./gdb.cell/ea-test.exp ...
Running ./gdb.cell/f-regs.exp ...
Running ./gdb.cell/gcore.exp ...
Running ./gdb.cell/mem-access.exp ...
Running ./gdb.cell/ptype.exp ...
Running ./gdb.cell/registers.exp ...
Running ./gdb.cell/sizeof.exp ...
Running ./gdb.cell/solib-symbol.exp ...
Running ./gdb.cell/solib.exp ...
Running ./gdb.cp/abstract-origin.exp ...
Running ./gdb.cp/ambiguous.exp ...
Running ./gdb.cp/annota2.exp ...
Running ./gdb.cp/annota3.exp ...
Running ./gdb.cp/anon-union.exp ...
Running ./gdb.cp/arg-reference.exp ...
FAIL: gdb.cp/arg-reference.exp: No false reference
Running ./gdb.cp/bool.exp ...
Running ./gdb.cp/breakpoint.exp ...
Running ./gdb.cp/bs15503.exp ...
Running ./gdb.cp/call-c.exp ...
Running ./gdb.cp/casts.exp ...
Running ./gdb.cp/class2.exp ...
Running ./gdb.cp/classes.exp ...
FAIL: gdb.cp/classes.exp: print ctor of typedef class
Running ./gdb.cp/cp-relocate.exp ...
Running ./gdb.cp/cpcompletion.exp ...
Running ./gdb.cp/cplusfuncs.exp ...
Running ./gdb.cp/ctti.exp ...
Running ./gdb.cp/demangle.exp ...
Running ./gdb.cp/derivation.exp ...
Running ./gdb.cp/exception.exp ...
FAIL: gdb.cp/exception.exp: continue to second throw
Running ./gdb.cp/expand-sals.exp ...
Running ./gdb.cp/formatted-ref.exp ...
Running ./gdb.cp/gdb1355.exp ...
Running ./gdb.cp/gdb2384.exp ...
Running ./gdb.cp/gdb2495.exp ...
Running ./gdb.cp/hang.exp ...
Running ./gdb.cp/inherit.exp ...
FAIL: gdb.cp/inherit.exp: ptype tagless struct
FAIL: gdb.cp/inherit.exp: print type of anonymous union // unrecognized line type 1: class_with_anon_union::._0;
Running ./gdb.cp/local.exp ...
Running ./gdb.cp/m-data.exp ...
Running ./gdb.cp/m-static.exp ...
Running ./gdb.cp/maint.exp ...
Running ./gdb.cp/mb-ctor.exp ...
Running ./gdb.cp/mb-inline.exp ...
Running ./gdb.cp/mb-templates.exp ...
Running ./gdb.cp/member-ptr.exp ...
Running ./gdb.cp/method.exp ...
Running ./gdb.cp/method2.exp ...
Running ./gdb.cp/misc.exp ...
Running ./gdb.cp/namespace-nested-import.exp ...
Running ./gdb.cp/namespace-using.exp ...
Running ./gdb.cp/namespace.exp ...
FAIL: gdb.cp/namespace.exp: print 'F::cXf'
FAIL: gdb.cp/namespace.exp: print F::cXf
FAIL: gdb.cp/namespace.exp: print F::cXfX
FAIL: gdb.cp/namespace.exp: print 'G::Xg'
FAIL: gdb.cp/namespace.exp: print G::Xg
FAIL: gdb.cp/namespace.exp: print G::XgX
FAIL: gdb.cp/namespace.exp: print cXOtherFile
FAIL: gdb.cp/namespace.exp: print XOtherFile
Running ./gdb.cp/overload.exp ...
Running ./gdb.cp/ovldbreak.exp ...
Running ./gdb.cp/pass-by-ref.exp ...
Running ./gdb.cp/pr-1023.exp ...
Running ./gdb.cp/pr-1210.exp ...
Running ./gdb.cp/pr-574.exp ...
Running ./gdb.cp/pr9631.exp ...
Running ./gdb.cp/printmethod.exp ...
Running ./gdb.cp/psmang.exp ...
Running ./gdb.cp/punctuator.exp ...
Running ./gdb.cp/ref-params.exp ...
Running ./gdb.cp/ref-types.exp ...
Running ./gdb.cp/rtti.exp ...
Running ./gdb.cp/templates.exp ...
Running ./gdb.cp/try_catch.exp ...
Running ./gdb.cp/userdef.exp ...
Running ./gdb.cp/virtfunc.exp ...
Running ./gdb.disasm/am33.exp ...
Running ./gdb.disasm/h8300s.exp ...
Running ./gdb.disasm/hppa.exp ...
Running ./gdb.disasm/mn10300.exp ...
Running ./gdb.disasm/sh3.exp ...
Running ./gdb.disasm/t01_mov.exp ...
Running ./gdb.disasm/t02_mova.exp ...
Running ./gdb.disasm/t03_add.exp ...
Running ./gdb.disasm/t04_sub.exp ...
Running ./gdb.disasm/t05_cmp.exp ...
Running ./gdb.disasm/t06_ari2.exp ...
Running ./gdb.disasm/t07_ari3.exp ...
Running ./gdb.disasm/t08_or.exp ...
Running ./gdb.disasm/t09_xor.exp ...
Running ./gdb.disasm/t10_and.exp ...
Running ./gdb.disasm/t11_logs.exp ...
Running ./gdb.disasm/t12_bit.exp ...
Running ./gdb.disasm/t13_otr.exp ...
Running ./gdb.dwarf2/callframecfa.exp ...
Running ./gdb.dwarf2/dup-psym.exp ...
Running ./gdb.dwarf2/dw2-basic.exp ...
Running ./gdb.dwarf2/dw2-compressed.exp ...
Running ./gdb.dwarf2/dw2-cu-size.exp ...
Running ./gdb.dwarf2/dw2-inheritance.exp ...
Running ./gdb.dwarf2/dw2-intercu.exp ...
Running ./gdb.dwarf2/dw2-intermix.exp ...
Running ./gdb.dwarf2/dw2-noloc.exp ...
Running ./gdb.dwarf2/dw2-producer.exp ...
Running ./gdb.dwarf2/dw2-ranges.exp ...
Running ./gdb.dwarf2/dw2-ref-missing-frame.exp ...
Running ./gdb.dwarf2/dw2-restore.exp ...
Running ./gdb.dwarf2/dw2-strp.exp ...
Running ./gdb.dwarf2/dw2-unresolved.exp ...
Running ./gdb.dwarf2/mac-fileno.exp ...
Running ./gdb.dwarf2/valop.exp ...
Running ./gdb.fortran/array-element.exp ...
Running ./gdb.fortran/complex.exp ...
Running ./gdb.fortran/derived-type.exp ...
Running ./gdb.fortran/exprs.exp ...
Running ./gdb.fortran/module.exp ...
Running ./gdb.fortran/subarray.exp ...
Running ./gdb.fortran/types.exp ...
Running ./gdb.gdb/complaints.exp ...
Running ./gdb.gdb/observer.exp ...
Running ./gdb.gdb/selftest.exp ...
Running ./gdb.gdb/xfullpath.exp ...
Running ./gdb.hp/gdb.aCC/exception.exp ...
Running ./gdb.hp/gdb.aCC/optimize.exp ...
Running ./gdb.hp/gdb.aCC/watch-cmd.exp ...
Running ./gdb.hp/gdb.base-hp/callfwmall.exp ...
Running ./gdb.hp/gdb.base-hp/dollar.exp ...
Running ./gdb.hp/gdb.base-hp/hwwatchbus.exp ...
Running ./gdb.hp/gdb.base-hp/pxdb.exp ...
Running ./gdb.hp/gdb.base-hp/reg-pa64.exp ...
Running ./gdb.hp/gdb.base-hp/reg.exp ...
Running ./gdb.hp/gdb.base-hp/sized-enum.exp ...
Running ./gdb.hp/gdb.base-hp/so-thresh.exp ...
Running ./gdb.hp/gdb.compat/xdb1.exp ...
Running ./gdb.hp/gdb.compat/xdb2.exp ...
Running ./gdb.hp/gdb.compat/xdb3.exp ...
Running ./gdb.hp/gdb.defects/bs14602.exp ...
Running ./gdb.hp/gdb.defects/solib-d.exp ...
Running ./gdb.hp/gdb.objdbg/objdbg01.exp ...
Running ./gdb.hp/gdb.objdbg/objdbg02.exp ...
Running ./gdb.hp/gdb.objdbg/objdbg03.exp ...
Running ./gdb.hp/gdb.objdbg/objdbg04.exp ...
Running ./gdb.java/jmain.exp ...
Running ./gdb.java/jmisc.exp ...
Running ./gdb.java/jprint.exp ...
Running ./gdb.java/jv-exp.exp ...
Running ./gdb.java/jv-print.exp ...
Running ./gdb.mi/gdb2549.exp ...
Running ./gdb.mi/gdb669.exp ...
Running ./gdb.mi/gdb680.exp ...
Running ./gdb.mi/gdb701.exp ...
Running ./gdb.mi/gdb792.exp ...
Running ./gdb.mi/mi-async.exp ...
Running ./gdb.mi/mi-basics.exp ...
Running ./gdb.mi/mi-break.exp ...
Running ./gdb.mi/mi-cli.exp ...
Running ./gdb.mi/mi-console.exp ...
Running ./gdb.mi/mi-disassemble.exp ...
Running ./gdb.mi/mi-eval.exp ...
Running ./gdb.mi/mi-file-transfer.exp ...
Running ./gdb.mi/mi-file.exp ...
Running ./gdb.mi/mi-hack-cli.exp ...
Running ./gdb.mi/mi-nonstop-exit.exp ...
Running ./gdb.mi/mi-nonstop.exp ...
Running ./gdb.mi/mi-nsintrall.exp ...
Running ./gdb.mi/mi-nsmoribund.exp ...
Running ./gdb.mi/mi-nsthrexec.exp ...
Running ./gdb.mi/mi-pending.exp ...
Running ./gdb.mi/mi-pthreads.exp ...
Running ./gdb.mi/mi-read-memory.exp ...
Running ./gdb.mi/mi-regs.exp ...
Running ./gdb.mi/mi-return.exp ...
Running ./gdb.mi/mi-simplerun.exp ...
Running ./gdb.mi/mi-stack.exp ...
Running ./gdb.mi/mi-stepi.exp ...
Running ./gdb.mi/mi-syn-frame.exp ...
Running ./gdb.mi/mi-until.exp ...
Running ./gdb.mi/mi-var-block.exp ...
Running ./gdb.mi/mi-var-child-f.exp ...
Running ./gdb.mi/mi-var-child.exp ...
Running ./gdb.mi/mi-var-cmd.exp ...
FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
Running ./gdb.mi/mi-var-cp.exp ...
Running ./gdb.mi/mi-var-display.exp ...
Running ./gdb.mi/mi-var-invalidate.exp ...
Running ./gdb.mi/mi-watch.exp ...
Running ./gdb.mi/mi2-basics.exp ...
Running ./gdb.mi/mi2-break.exp ...
Running ./gdb.mi/mi2-cli.exp ...
Running ./gdb.mi/mi2-console.exp ...
Running ./gdb.mi/mi2-disassemble.exp ...
Running ./gdb.mi/mi2-eval.exp ...
Running ./gdb.mi/mi2-file.exp ...
Running ./gdb.mi/mi2-hack-cli.exp ...
Running ./gdb.mi/mi2-pthreads.exp ...
Running ./gdb.mi/mi2-read-memory.exp ...
Running ./gdb.mi/mi2-regs.exp ...
Running ./gdb.mi/mi2-return.exp ...
Running ./gdb.mi/mi2-simplerun.exp ...
Running ./gdb.mi/mi2-stack.exp ...
Running ./gdb.mi/mi2-stepi.exp ...
Running ./gdb.mi/mi2-syn-frame.exp ...
Running ./gdb.mi/mi2-until.exp ...
Running ./gdb.mi/mi2-var-block.exp ...
Running ./gdb.mi/mi2-var-child.exp ...
Running ./gdb.mi/mi2-var-cmd.exp ...
Running ./gdb.mi/mi2-var-display.exp ...
Running ./gdb.mi/mi2-watch.exp ...
Running ./gdb.modula2/unbounded-array.exp ...
Running ./gdb.objc/basicclass.exp ...
Running ./gdb.objc/nondebug.exp ...
Running ./gdb.objc/objcdecode.exp ...
Running ./gdb.opt/clobbered-registers-O2.exp ...
Running ./gdb.opt/inline-bt.exp ...
Running ./gdb.opt/inline-cmds.exp ...
Running ./gdb.opt/inline-locals.exp ...
Running ./gdb.pascal/floats.exp ...
Running ./gdb.pascal/hello.exp ...
Running ./gdb.pascal/integers.exp ...
Running ./gdb.pascal/types.exp ...
Running ./gdb.python/py-cmd.exp ...
Running ./gdb.python/py-frame.exp ...
Running ./gdb.python/py-function.exp ...
Running ./gdb.python/py-mi.exp ...
Running ./gdb.python/py-prettyprint.exp ...
Running ./gdb.python/py-template.exp ...
Running ./gdb.python/py-value.exp ...
Running ./gdb.python/python.exp ...
Running ./gdb.reverse/break-reverse.exp ...
Running ./gdb.reverse/consecutive-reverse.exp ...
Running ./gdb.reverse/finish-reverse.exp ...
Running ./gdb.reverse/i386-reverse.exp ...
Running ./gdb.reverse/machinestate.exp ...
Running ./gdb.reverse/sigall-reverse.exp ...
Running ./gdb.reverse/solib-reverse.exp ...
Running ./gdb.reverse/step-reverse.exp ...
Running ./gdb.reverse/until-reverse.exp ...
Running ./gdb.reverse/watch-reverse.exp ...
Running ./gdb.server/ext-attach.exp ...
Running ./gdb.server/ext-run.exp ...
Running ./gdb.server/file-transfer.exp ...
Running ./gdb.server/server-mon.exp ...
Running ./gdb.server/server-run.exp ...
Running ./gdb.stabs/exclfwd.exp ...
Running ./gdb.stabs/weird.exp ...
Running ./gdb.threads/attach-into-signal.exp ...
Running ./gdb.threads/attach-stopped.exp ...
Running ./gdb.threads/attachstop-mt.exp ...
Running ./gdb.threads/bp_in_thread.exp ...
Running ./gdb.threads/current-lwp-dead.exp ...
Running ./gdb.threads/execl.exp ...
FAIL: gdb.threads/execl.exp: continue across exec
Running ./gdb.threads/fork-child-threads.exp ...
FAIL: gdb.threads/fork-child-threads.exp: next over fork
FAIL: gdb.threads/fork-child-threads.exp: get to the spawned thread
FAIL: gdb.threads/fork-child-threads.exp: two threads found
Running ./gdb.threads/fork-thread-pending.exp ...
Running ./gdb.threads/gcore-thread.exp ...
Running ./gdb.threads/hand-call-in-threads.exp ...
Running ./gdb.threads/interrupted-hand-call.exp ...
Running ./gdb.threads/killed.exp ...
Running ./gdb.threads/linux-dp.exp ...
Running ./gdb.threads/manythreads.exp ...
Running ./gdb.threads/multi-create.exp ...
Running ./gdb.threads/pending-step.exp ...
Running ./gdb.threads/print-threads.exp ...
Running ./gdb.threads/pthread_cond_wait.exp ...
Running ./gdb.threads/pthreads.exp ...
Running ./gdb.threads/schedlock.exp ...
Running ./gdb.threads/sigthread.exp ...
Running ./gdb.threads/staticthreads.exp ...
Running ./gdb.threads/step.exp ...
Running ./gdb.threads/step2.exp ...
Running ./gdb.threads/switch-threads.exp ...
Running ./gdb.threads/thread-execl.exp ...
Running ./gdb.threads/thread-specific.exp ...
Running ./gdb.threads/thread-unwindonsignal.exp ...
Running ./gdb.threads/thread_check.exp ...
Running ./gdb.threads/thread_events.exp ...
Running ./gdb.threads/threadapply.exp ...
Running ./gdb.threads/threxit-hop-specific.exp ...
Running ./gdb.threads/tls-nodebug.exp ...
Running ./gdb.threads/tls-shared.exp ...
Running ./gdb.threads/tls.exp ...
Running ./gdb.threads/watchthreads.exp ...
Running ./gdb.threads/watchthreads2.exp ...
Running ./gdb.trace/actions.exp ...
Running ./gdb.trace/backtrace.exp ...
Running ./gdb.trace/circ.exp ...
Running ./gdb.trace/collection.exp ...
Running ./gdb.trace/deltrace.exp ...
Running ./gdb.trace/infotrace.exp ...
Running ./gdb.trace/limits.exp ...
Running ./gdb.trace/packetlen.exp ...
Running ./gdb.trace/passc-dyn.exp ...
Running ./gdb.trace/passcount.exp ...
Running ./gdb.trace/report.exp ...
Running ./gdb.trace/save-trace.exp ...
Running ./gdb.trace/tfind.exp ...
Running ./gdb.trace/tracecmd.exp ...
Running ./gdb.trace/while-dyn.exp ...
Running ./gdb.trace/while-stepping.exp ...
Running ./gdb.xml/tdesc-arch.exp ...
Running ./gdb.xml/tdesc-errors.exp ...
Running ./gdb.xml/tdesc-regs.exp ...
Running ./gdb.xml/tdesc-xinclude.exp ...

=== gdb Summary ===

# of expected passes 12757
# of unexpected failures 22
# of expected failures 43
# of known failures 51
# of untested testcases 13
# of unsupported tests 73
/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb/testsuite/../../gdb/gdb version 7.0.50.20091001-cvs -nw -nx

make[2]: *** [check-single] Error 1
make[2]: Leaving directory `/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb/testsuite'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/home/caz/lightfleet/kgdb/gdb-KgdbLight/gdb'
make: *** [check-gdb] Error 2