Comment 1 for bug 615989

Revision history for this message
Yao Qi (yao-codesourcery) wrote :

The first failure is caused by breakpoint setting by mistake. In test case, breakpoint is set on function 'pendfunc1', and expected to set/hit on line 22, however, breakpoint is hit on line 23.

Reproduce it in another way,
$ ./gdb /home/yao/Work/LP615989/pendshr.c.o
(gdb) b pendfunc1
During symbol reading, DW_AT_name missing from DW_TAG_base_type.
Breakpoint 1 at 0x6: file /home/yao/maverick/home/yao/cvs/src/gdb/testsuite/gdb.base/pendshr.c, line 23.

You can see that breakpoint is set at address 0x6, which is associated with line 23. We can prove this by dumping .debug_line, as follows,

  Special opcode 49: advance Address by 6 to 0x6 and Line by 2 to 23 // <---- here,
  Special opcode 45: advance Address by 6 to 0xc and Line by -2 to 21
  Special opcode 20: advance Address by 2 to 0xe and Line by 1 to 22
   Special opcode 62: advance Address by 8 to 0x16 and Line by 1 to 23

Disasm pendfunc1 shows that, ldr insn (on 0x6) loads a const.

00000000 <pendfunc1>:
   0: b580 push {r7, lr}
   2: b084 sub sp, #16
   4: af00 add r7, sp, #0
   6: 4b09 ldr r3, [pc, #36] ; (2c <pendfunc1+0x2c>)
   8: a200 add r2, pc, #0 ; (adr r2, c <pendfunc1+0xc>)
   a: 4413 add r3, r2