title: Fatal Signal 6 SIGABRT code=-6
body: <p>i'm writing an android program for visualizing the audio signal. The main activity is:</p>
  
  <pre><code>package com.example.soundvisualizer;
  import android.os.Bundle;
  import android.app.Activity;
  import android.content.Context;
  import android.util.Log;
  import android.view.Display;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.Toast;
  
  public class MainActivity extends Activity implements OnClickListener {
  private CDrawer.CDrawThread mDrawThread;
  private CDrawer mdrawer;
  private Button btn;
  private View.OnClickListener listener;
  private Boolean m_bStart;
  private Boolean recording;
  private CSampler sampler;
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      m_bStart = false;
      mdrawer = (CDrawer) findViewById(R.id.drawer);
      while (true){
          recording = false;
          run();    
          return; 
      }  
  }
  
  /**
   * Pause the visualizer when the app is paused
   */
  @Override
  protected void onPause(){
      System.out.println("onPause");
      sampler.SetRun(false);
      mDrawThread.setRun(false);
      sampler.SetSleeping(true);
      mDrawThread.SetSleeping(true);
      super.onPause();
  }
  /**
   * Resters the visualizer when the app restarts
   */
  @Override
  protected void onRestart(){
      m_bStart = true;
      System.out.println("onRestart");
      super.onRestart();
  }
  /**
   * Resume the visualizer when the app resumes
   */
  @Override
  protected void onResume(){
      System.out.println("onResume");
      int i = 0;
      while (true){
          if ((sampler.GetDead2()) &amp;&amp; (mdrawer.GetDead2())){
              System.out.println(sampler.GetDead2() + ", " + mdrawer.GetDead2());
              sampler.Restart();
              if (!m_bStart.booleanValue())
                  mdrawer.Restart(true);
              sampler.SetSleeping(false);
              mDrawThread.SetSleeping(false);
              m_bStart = false;
              super.onResume();
              return;
          }
          try{
              Thread.sleep(500L);
              System.out.println("Hang on..");
              i++;
              if (!sampler.GetDead2().booleanValue())
                  System.out.println("sampler not DEAD!!!");
              if (!mdrawer.GetDead2().booleanValue()){
                  System.out.println("mDrawer not DeAD!!");
                  mdrawer.SetRun(false);
              }
              if (i &lt;= 4)
                  continue;
              mDrawThread.SetDead2(true);
          }
          catch (InterruptedException localInterruptedException){
              localInterruptedException.printStackTrace();
          }
      }   
  }
  
  @Override
  protected void onStart(){
      System.out.println("onStart");
      super.onStart();
  }
  
  @Override
  protected void onStop(){
      System.out.println("onStop");
      super.onStop();
  }
  
  
  /** 
   * Recives the buffert from the sampler
   * @param buffert
   */
  public void setBuffer(short[] paramArrayOfShort){
      mDrawThread = mdrawer.getThread();
      mDrawThread.setBuffer(paramArrayOfShort);
  }
  
  /**
   * Called by OnCreate to get everything up and running
   */
  public void run(){
      try {
          if (mDrawThread == null){
              mDrawThread = mdrawer.getThread();
          }
          if (sampler == null)
              sampler = new CSampler(this);
          Context localContext = getApplicationContext();
          Display localDisplay = getWindowManager().getDefaultDisplay();
          Toast localToast = Toast.makeText(localContext, "Please make some noise..", Toast.LENGTH_LONG);
          localToast.show();
          if (sampler != null){
              try {
                  sampler.Init();
              } 
              catch (Exception e) {
                  Toast.makeText(this,"Could not instance the sampler. Could not access the device audio-drivers", Toast.LENGTH_LONG).show();
              }
              btn = (Button) this.findViewById(R.id.button_stop);
              btn.setOnClickListener(this);
              sampler.StartRecording();
              sampler.StartSampling();
          }
        }
      catch (NullPointerException e) {
          Log.e("Main_Run", "NullPointer: " + e.getMessage());
      }
  }
  
  @Override
  public void onClick(View v) {
      // TODO Auto-generated method stub
      if(btn.getText().equals("Start")){
          btn.setText("Stop");
          sampler.StartRecording();
          sampler.StartSampling();
      }
      else{
          btn.setText("Start");
          sampler.StopRecording();
      }
  }
  
  }
  </code></pre>
  
  <p>Now, the app starts and works fine. i click the stop button and it is ok. reclick start and the restart works fine. when I click Stop again the app crashes and the logcat displays the following lines reguarding my app:</p>
  
  <pre><code>I/ActivityManager(  755): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.soundvisualizer/.MainActivity} from pid 1054
  I/ActivityManager(  755): Start proc com.example.soundvisualizer for activity com.example.soundvisualizer/.MainActivity: pid=6959 uid=10126 gids={50126}
  I/ActivityManager(  755): Displayed com.example.soundvisualizer/.MainActivity: +710ms
  W/ActivityManager(  755):   Force finishing activity com.example.soundvisualizer/.MainActivity
  W/ActivityManager(  755): Exception thrown during pause
  W/ActivityManager(  755): android.os.DeadObjectException
  W/ActivityManager(  755):   at android.os.BinderProxy.transact(Native Method)
  W/ActivityManager(  755):   at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:660)
  W/ActivityManager(  755):   at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:761)
  W/ActivityManager(  755):   at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2455)
  W/ActivityManager(  755):   at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2329)
  W/ActivityManager(  755):   at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2035)
  W/ActivityManager(  755):   at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9543)
  W/ActivityManager(  755):   at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9436)
  W/ActivityManager(  755):   at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10081)
  W/ActivityManager(  755):   at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9632)
  W/ActivityManager(  755):   at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
  I/ActivityManager(  755): Config changes=480 {1.0 222mcc10mnc it_IT ldltr sw360dp w360dp h567dp 480dpi nrml port finger -keyb/v/h -nav/h s.583}
  I/ActivityManager(  755): Process com.example.soundvisualizer (pid 6959) has died.
  W/ActivityManager(  755): No content provider found for permission revoke: file:///data/local/tmp/SoundVisualizer.apk
  W/ActivityManager(  755): No content provider found for permission revoke: file:///data/local/tmp/SoundVisualizer.apk
  I/ActivityManager(  755): Force stopping com.example.soundvisualizer appid=10126 user=-1: uninstall pkg
  I/ActivityManager(  755): Force stopping com.example.soundvisualizer appid=10126 user=-1: update pkg
  I/ActivityManager(  755): Force stopping com.example.soundvisualizer appid=10126 user=0: pkg removed
  </code></pre>
  
  <p>I have no idea about what causes the error and how can I fix it. Can anyone help me?
  Thanks in advance.</p>
  
  <p><strong>Edit</strong>
  I found <a href="http://publib.boulder.ibm.com/infocenter/realtime/v1r0/index.jsp?topic=/com.ibm.rt.doc.10/user/sighand.html">this link</a> in which is explained what type of error sigabrt is. the table says that sigabrt can be disabled by using -Xrs. How can I use -Xrs in Eclipse IDE??</p>