All pastes #88355 Raw Edit

Something

public java v1 · immutable
·published 2006-07-14 20:41 UTC
rendered paste body
// This file is part of the program FRYSK.//// Copyright 2005, Red Hat Inc.//// FRYSK is free software; you can redistribute it and/or modify it// under the terms of the GNU General Public License as published by// the Free Software Foundation; version 2 of the License.//// FRYSK is distributed in the hope that it will be useful, but// WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// General Public License for more details.// // You should have received a copy of the GNU General Public License// along with FRYSK; if not, write to the Free Software Foundation,// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.// // In addition, as a special exception, Red Hat, Inc. gives You the// additional right to link the code of FRYSK with code not covered// under the GNU General Public License ("Non-GPL Code") and to// distribute linked combinations including the two, subject to the// limitations in this paragraph. Non-GPL Code permitted under this// exception must only link to the code of FRYSK through those well// defined interfaces identified in the file named EXCEPTION found in// the source code files (the "Approved Interfaces"). The files of// Non-GPL Code may instantiate templates or use macros or inline// functions from the Approved Interfaces without causing the// resulting work to be covered by the GNU General Public// License. Only Red Hat, Inc. may make changes or additions to the// list of Approved Interfaces. You must obey the GNU General Public// License in all respects for all of the FRYSK code and other code// used in conjunction with FRYSK except the Non-GPL Code covered by// this exception. If you modify this file, you may extend this// exception to your version of the file, but you are not obligated to// do so. If you do not wish to provide this exception without// modification, you must delete this exception statement from your// version and license this file solely under the GPL without// exception.package frysk.rt;import inua.eio.ByteBuffer;import java.util.logging.Level;import frysk.proc.Action;import frysk.proc.Host;import frysk.proc.Manager;import frysk.proc.Task;import frysk.proc.TaskObserver;import frysk.proc.TestLib;import frysk.sys.proc.MapsBuilder;public class TestStackBacktrace    extends TestLib{  private Task myTask;    public void testBacktrace ()  {    Host.logger.setLevel(Level.FINE);//    if(brokenXXX())//      return;        class TaskCreatedObserver implements TaskObserver.Attached    {      public Action updateAttached (Task task)      {        TestStackBacktrace.this.myTask = task;        Manager.eventLoop.requestStop();        return Action.BLOCK;      }      public void addedTo (Object observable)      {        // TODO Auto-generated method stub              }      public void addFailed (Object observable, Throwable w)      {        // TODO Auto-generated method stub              }      public void deletedFrom (Object observable)      {        // TODO Auto-generated method stub              }    }        TaskCreatedObserver obs = new TaskCreatedObserver();    String command[] = {"pwd"};        host.requestCreateAttachedProc(command, obs);        assertRunUntilStop("Observer was not added");        assertNotNull(myTask);    class MyBuilder extends MapsBuilder    {      public void buildBuffer (byte[] maps)      {        // TODO Auto-generated method stub              }      public void buildMap (long addressLow, long addressHigh, boolean permRead, boolean permWrite, boolean permExecute, boolean permPrivate, long offset, int devMajor, int devMinor, int inode, int pathnameOffset, int pathnameLength)      {        ByteBuffer buffer =  myTask.getMemory();                for(long i = addressLow; i < addressHigh; i++){          buffer.getByte(i);        }      }          }        MyBuilder builder = new MyBuilder();    System.out.println("Before maps test");    builder.construct(myTask.getTid());    System.out.println("After maps test");        StackFrame frame = StackFactory.createStackFrame(myTask);        assertNotNull(frame);        int indent = 0;    while(frame != null){      for(int i = 0; i < indent; i++)        System.out.print("\t");      System.out.println("Frame " + (indent + 1));      frame = frame.outer;    }  }}