This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Process record AMD64 patches got soem FAIL with testsuite


Hi Michael,

I test the AMD64 patches (You can get them in
http://sourceware.org/ml/gdb-patches/2009-07/msg00171.html
http://sourceware.org/ml/gdb-patches/2009-07/msg00172.html
http://sourceware.org/ml/gdb-patches/2009-07/msg00173.html) with the
reverse testsuite and got some FAIL.

make check RUNTESTFLAGS="finish-reverse.exp --target_board=precord"
FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line, reverse
finish from long_long_func
FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line, reverse
finish from long_func
FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line, reverse
finish from int_func
FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line, reverse
finish from short_func
FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line, reverse
finish from char_func
FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line, reverse
finish from void_func

Breakpoint 7, long_long_func () at
../src/gdb/testsuite/gdb.reverse/finish-reverse.c:69
69	  return long_long_returnval;	/* LONG LONG FUNC */
(gdb) PASS: gdb.reverse/finish-reverse.exp: continue to breakpoint:
long_long_func
finish
Run back to call of #0  long_long_func () at
../src/gdb/testsuite/gdb.reverse/finish-reverse.c:69
0x00000000004005eb in main (argc=1, argv=0x7fffffffe148) at
../src/gdb/testsuite/gdb.reverse/finish-reverse.c:103
103	  long_long_resultval = long_long_func ();	/* long_checkpoint */
(gdb) info line
Line 103 of "../src/gdb/testsuite/gdb.reverse/finish-reverse.c" starts
at address 0x4005e6 <main+112> and ends at 0x4005f4 <main+126>.
(gdb) info reg pc
pc: 0x4005eb
(gdb) print 0x4005e6 == 0x4005eb
$6 = 0
(gdb) FAIL: gdb.reverse/finish-reverse.exp: test_start_of_line,
reverse finish from long_long_func
continue
Continuing.

/home/teawater/gdb/rec/bt/../src/gdb/testsuite/gdb.reverse/finish-reverse.c:103
  4005e6:	b8 00 00 00 00       	mov    $0x0,%eax
  4005eb:	e8 4f ff ff ff       	callq  40053f <long_long_func>
  4005f0:	48 89 45 e0          	mov    %rax,-0x20(%rbp)

I think this issue is about reverse-finish command have something
wrong in AMD64.  Maybe we need fix it.





make check RUNTESTFLAGS="step-reverse.exp --target_board=precord"
FAIL: gdb.reverse/step-reverse.exp: stepi into function call
FAIL: gdb.reverse/step-reverse.exp: stepi back from function call (too far)
FAIL: gdb.reverse/step-reverse.exp: reverse stepi thru function return (too far)

(gdb) PASS: gdb.reverse/step-reverse.exp: simple stepi
stepi
0x000000000040061f	62	   callee();	/* STEPI TEST */
(gdb) FAIL: gdb.reverse/step-reverse.exp: stepi into function call
stepi
callee () at ../src/gdb/testsuite/gdb.reverse/step-reverse.c:25
25	int callee() {		/* ENTER CALLEE */
(gdb) FAIL: gdb.reverse/step-reverse.exp: stepi back from function
call (too far)
set exec-dir reverse
(gdb) PASS: gdb.reverse/step-reverse.exp: set reverse execution
stepi
0x000000000040061f in main () at
../src/gdb/testsuite/gdb.reverse/step-reverse.c:62
62	   callee();	/* STEPI TEST */
(gdb) FAIL: gdb.reverse/step-reverse.exp: reverse stepi thru function
return (too far)
stepi
62	   callee();	/* STEPI TEST */

/home/teawater/gdb/rec/bt/../src/gdb/testsuite/gdb.reverse/step-reverse.c:61
  40060b:	8b 55 cc             	mov    -0x34(%rbp),%edx
  40060e:	8b 45 d0             	mov    -0x30(%rbp),%eax
  400611:	89 d1                	mov    %edx,%ecx
  400613:	29 c1                	sub    %eax,%ecx
  400615:	89 c8                	mov    %ecx,%eax
  400617:	89 45 d4             	mov    %eax,-0x2c(%rbp)
/home/teawater/gdb/rec/bt/../src/gdb/testsuite/gdb.reverse/step-reverse.c:62
  40061a:	b8 00 00 00 00       	mov    $0x0,%eax
  40061f:	e8 68 ff ff ff       	callq  40058c <callee>

Looks like testsuite have something wrong in AMD64.



make check RUNTESTFLAGS="solib-reverse.exp --target_board=precord"

FAIL: gdb.reverse/solib-reverse.exp: reverse-step third sleep
FAIL: gdb.reverse/solib-reverse.exp: reverse-step second sleep
FAIL: gdb.reverse/solib-reverse.exp: reverse-step first sleep, dynsym resolve
FAIL: gdb.reverse/solib-reverse.exp: reverse-step third printf
FAIL: gdb.reverse/solib-reverse.exp: reverse-step second printf
FAIL: gdb.reverse/solib-reverse.exp: reverse-step first printf, dynsym resolve
FAIL: gdb.reverse/solib-reverse.exp: reverse-step generic
FAIL: gdb.reverse/solib-reverse.exp: forward to end part one
FAIL: gdb.reverse/solib-reverse.exp: reverse-next third sleep
FAIL: gdb.reverse/solib-reverse.exp: reverse-next second sleep
FAIL: gdb.reverse/solib-reverse.exp: reverse-next first sleep, dynsym resolve
FAIL: gdb.reverse/solib-reverse.exp: reverse-next third printf
FAIL: gdb.reverse/solib-reverse.exp: reverse-next second printf
FAIL: gdb.reverse/solib-reverse.exp: reverse-next first printf, dynsym resolve
FAIL: gdb.reverse/solib-reverse.exp: reverse-next generic
FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib function one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function two
FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib function two
FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main two
FAIL: gdb.reverse/solib-reverse.exp: run until end part two
FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function one
FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function two


(gdb) PASS: gdb.reverse/solib-reverse.exp: run until end part one
reverse-step
38	  sleep (0);			/* sleep two */
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step third sleep
reverse-step
Cannot access memory at address 0x8
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step second sleep
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step first sleep,
dynsym resolve
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step third printf
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step second printf
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step first printf,
dynsym resolve
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step generic
until 41
Cannot access memory at address 0x8
(gdb) FAIL: gdb.reverse/solib-reverse.exp: forward to end part one
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next third sleep
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next second sleep
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next first sleep,
dynsym resolve
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next third printf
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next second printf
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next first printf,
dynsym resolve
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next generic
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function one
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib
function one
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main one
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function two
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib
function two
reverse-step
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main two
until 33
Cannot access memory at address 0x8
(gdb) FAIL: gdb.reverse/solib-reverse.exp: run until end part two
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function one
reverse-next
Cannot find bounds of current function
(gdb) FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function two
testcase ../src/gdb/testsuite/gdb.reverse/solib-reverse.exp completed
in 1 seconds


All of this issue is because "Cannot access memory at address 0x8".
This memory error is from:
#0  memory_error (status=5, memaddr=8) at ../../src/gdb/corefile.c:217
#1  0x000000000045a3e6 in read_memory (memaddr=8, myaddr=0x18948d0 "",
len=8) at ../../src/gdb/corefile.c:237
#2  0x0000000000507d85 in value_fetch_lazy (val=0x197ecc0) at
../../src/gdb/valops.c:641
#3  0x00000000004fc476 in value_contents_all (value=0x197ecc0) at
../../src/gdb/value.c:414
#4  0x000000000046441c in frame_register_unwind (frame=0x165e770,
regnum=16, optimizedp=0x7fffd6b3e0fc, lvalp=0x7fffd6b3e0f4,
    addrp=0x7fffd6b3e0e8, realnump=0x7fffd6b3e0f8,
bufferp=0x7fffd6b3e120 "") at ../../src/gdb/frame.c:695
#5  0x00000000004645fc in frame_unwind_register (frame=0x165e770,
regnum=16, buf=0x7fffd6b3e120 "") at ../../src/gdb/frame.c:731
#6  0x000000000046eca5 in i386_unwind_pc (gdbarch=0x1719470,
next_frame=0x165e770) at ../../src/gdb/i386-tdep.c:1327
#7  0x0000000000555fac in gdbarch_unwind_pc (gdbarch=0x1719470,
next_frame=0x165e770) at ../../src/gdb/gdbarch.c:2412
#8  0x0000000000464025 in frame_unwind_pc (this_frame=0x165e770) at
../../src/gdb/frame.c:566
#9  0x0000000000466256 in get_frame_pc (frame=0x165edc0) at
../../src/gdb/frame.c:1680
#10 0x000000000046626d in get_frame_address_in_block
(this_frame=0x165edc0) at ../../src/gdb/frame.c:1689
#11 0x0000000000467fe2 in inline_frame_sniffer (self=0x72c3e0,
this_frame=0x165edc0, this_cache=0x165edc8)
    at ../../src/gdb/inline-frame.c:193
#12 0x00000000004672fa in frame_unwind_find_by_frame
(this_frame=0x165edc0, this_cache=0x165edc8) at
../../src/gdb/frame-unwind.c:102
#13 0x000000000046666e in get_frame_type (frame=0x165edc0) at
../../src/gdb/frame.c:1864
#14 0x000000000046362e in skip_inlined_frames (frame=0x165edc0) at
../../src/gdb/frame.c:269
#15 0x0000000000463825 in frame_unwind_caller_id
(next_frame=0x165e770) at ../../src/gdb/frame.c:325
#16 0x000000000053b33a in handle_inferior_event (ecs=0x7fffd6b3e610)
at ../../src/gdb/infrun.c:3777


I think this issue is about frame_unwind_caller_id and AMD64.


Thanks,
Hui


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]