gdb.base/sigstep.exp failures

Bug #615993 reported by Ulrich Weigand
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GDB
Fix Released
Medium
Yao Qi

Bug Description

FAIL: gdb.base/sigstep.exp: step from handler; leave handler (timeout)
FAIL: gdb.base/sigstep.exp: stepi from handleri; leave signal trampoline
FAIL: gdb.base/sigstep.exp: next from handler; leave handler (timeout)
FAIL: gdb.base/sigstep.exp: nexti from handleri; leave signal trampoline
FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; performing step
FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; performing next
FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; performing continue
FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; performing step
FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; performing next
FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; performing continue

Further analysis required. Probably needs enhancements to signal framer unwinders.

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

[CodeSourcery #7810]

Changed in gdb-linaro:
status: New → Confirmed
Revision history for this message
Yao Qi (yao-codesourcery) wrote :

The first four failures are caused by a mistake when compute the next pc of instruction svc. Here is a patch to fix this,
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 1ac8817..978bb72 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -3257,7 +3257,18 @@ arm_get_next_pc_raw (struct frame_info *frame, CORE_ADDR pc, int insert_bkpt)
        case 0xc:
        case 0xd:
        case 0xe: /* coproc ops */
+ break;
        case 0xf: /* SWI */
+ {
+ unsigned long svc_number = get_frame_register_unsigned (frame, 7);
+
+ if (svc_number == 119 || svc_number == 173)
+ {
+ if (get_frame_type (frame) == SIGTRAMP_FRAME)
+ {
+ nextpc = frame_unwind_caller_pc (frame);
+ }
+ }
          break;

        default:
--------------------------------------
After this patch is applied, first four failures goes away,

Running ../../../src/gdb/testsuite/gdb.base/sigstep.exp ...
FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; performing step
FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; performing next
FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; performing continue
FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; performing step
FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; performing next
FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; performing continue

                === gdb Summary ===

# of expected passes 113
# of unexpected failures 6
/home/yao/cvs/build/gdb/testsuite/../../gdb/gdb version 7.2.50.20100820-cvs -nw -nx

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

Patch to fix the first four failures are sent to gdb-patches to review.
http://www.cygwin.com/ml/gdb-patches/2010-08/msg00440.html

Revision history for this message
Yao Qi (yao-codesourcery) wrote :
Changed in gdb-linaro:
importance: Undecided → Medium
Revision history for this message
Ulrich Weigand (uweigand) wrote :

I've opened bug #649121 to track the remaining problem, which seem to have a completely different cause.

Changed in gdb-linaro:
status: Confirmed → Fix Committed
Changed in gdb-linaro:
assignee: nobody → Yao Qi (yao-codesourcery)
milestone: none → 7.2-2010.10-0
Michael Hope (michaelh1)
Changed in gdb-linaro:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.