From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5081 invoked by alias); 3 Dec 2007 20:47:31 -0000 Received: (qmail 5054 invoked by uid 9112); 3 Dec 2007 20:47:31 -0000 Date: Mon, 03 Dec 2007 20:47:00 -0000 Message-ID: <20071203204729.5038.qmail@sourceware.org> From: mark@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Add StepOverPrologue test. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 778ac77d3fe215ae14102f07822ba0f3d1cc0079 X-Git-Newrev: 32035e6f7ed081a0d73a4fd035b142981048a220 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2007-q4/txt/msg00513.txt.bz2 The branch, master has been updated via 32035e6f7ed081a0d73a4fd035b142981048a220 (commit) from 778ac77d3fe215ae14102f07822ba0f3d1cc0079 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 32035e6f7ed081a0d73a4fd035b142981048a220 Author: Mark Wielaard Date: Mon Dec 3 21:47:15 2007 +0100 Add StepOverPrologue test. frysk-core/frysk/pkglibdir/ChangeLog 2007-12-03 Mark Wielaard * funit-stepping-asm.S: Add fifth function and _stepOverPrologue_ marker. frysk-core/frysk/stepping/ChangeLog 2007-12-03 Mark Wielaard * TestStepping.java (testASMFunctionStepOverPrologue): New test. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 5 ++ frysk-core/frysk/pkglibdir/funit-stepping-asm.S | 8 ++++ frysk-core/frysk/stepping/ChangeLog | 10 +++- frysk-core/frysk/stepping/TestStepping.java | 46 +++++++++++++++++++++++ 4 files changed, 66 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 0b15918..6083017 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Mark Wielaard + + * funit-stepping-asm.S: Add fifth function and _stepOverPrologue_ + marker. + 2007-12-03 Sami Wagiaalla * funit-class-static.cxx: Added a def of static_i. diff --git a/frysk-core/frysk/pkglibdir/funit-stepping-asm.S b/frysk-core/frysk/pkglibdir/funit-stepping-asm.S index 4af1506..cde2b22 100644 --- a/frysk-core/frysk/pkglibdir/funit-stepping-asm.S +++ b/frysk-core/frysk/pkglibdir/funit-stepping-asm.S @@ -40,10 +40,18 @@ #include "frysk-asm.h" + FUNCTION_BEGIN(fifth,1) + FUNCTION_PROLOGUE(fifth,1) ; NO_OP // _stepOverPrologue_ + FUNCTION_EPILOGUE(fifth,1) + FUNCTION_RETURN(fifth,1) + FUNCTION_END(fifth,1) + + FUNCTION_BEGIN(fourth,0) FUNCTION_PROLOGUE(fourth,0) NO_OP // _stepAdvanceStart_ NO_OP + FUNCTION_CALL(fifth) FUNCTION_EPILOGUE(fourth,0) FUNCTION_RETURN(fourth,0) FUNCTION_END(fourth,0) diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog index f643eb3..7a52835 100644 --- a/frysk-core/frysk/stepping/ChangeLog +++ b/frysk-core/frysk/stepping/ChangeLog @@ -1,7 +1,11 @@ +2007-12-03 Mark Wielaard + + * TestStepping.java (testASMFunctionStepOverPrologue): New test. + 2007-11-06 Tim Moore - - * SteppingEngine.java (ThreadLifeObservable.updateTerminated): - Clean out the dead task and its siblings if necessary. + + * SteppingEngine.java (ThreadLifeObservable.updateTerminated): + Clean out the dead task and its siblings if necessary. 2007-10-14 Andrew Cagney diff --git a/frysk-core/frysk/stepping/TestStepping.java b/frysk-core/frysk/stepping/TestStepping.java index 7f14ea1..cab4480 100644 --- a/frysk-core/frysk/stepping/TestStepping.java +++ b/frysk-core/frysk/stepping/TestStepping.java @@ -952,6 +952,52 @@ public class TestStepping extends TestLib { cleanup(); } + /** + * Tests that the line stepper steps OK even when stack pointer + * changes. + */ + public void testASMFunctionStepOverPrologue() { + + /** Variable setup */ + String source = Config.getRootSrcDir() + + "frysk-core/frysk/pkglibdir/funit-stepping-asm.S"; + + this.scanner = new TestfileTokenScanner(new File(source)); + + /* The line number where the test begins, prologue of fifth + function. */ + int startLine = this.scanner.findTokenLine("_stepOverPrologue_"); + + /* The line number the test should end up at, still the same + line (only prologue is stepped over, not the NO_OP) */ + int endLine = this.scanner.findTokenLine("_stepOverPrologue_"); + + /* The test process */ + dbae = new DaemonBlockedAtEntry(Config + .getPkgLibFile("funit-stepping-asm")); + + Task theTask = dbae.getMainTask(); + + this.testStarted = false; + + initTaskWithTask(theTask, source, startLine, endLine); + + this.currentTest = new AssertLine(endLine, theTask); + + DebugInfoFrame frame = DebugInfoStackFactory + .createDebugInfoStackTrace(theTask); + assertTrue("Line information present", frame.getLines().length > 0); + + /** The stepping operation */ + this.se.stepOver(theTask, frame); + + this.testStarted = true; + /** Run to completion */ + assertRunUntilStop("Running test"); + cleanup(); + } + + boolean genericUpdate = false; public Task initTask(Offspring process, String source, int startLine, hooks/post-receive -- frysk system monitor/debugger