Program: 196733
Project: 196733
Buggy source:
void dumpProcessesLocked(FileDescriptor fd,PrintWriter pw,String[] args,int opti,boolean dumpAll,String dumpPackage){
  boolean needSep=false;
  boolean printedAnything=false;
  int numPers=0;
  pw.println("String_Node_Str");
  if (dumpAll) {
    final int NP=mProcessNames.getMap().size();
    for (int ip=0; ip < NP; ip++) {
      SparseArray<ProcessRecord> procs=mProcessNames.getMap().valueAt(ip);
      final int NA=procs.size();
      for (int ia=0; ia < NA; ia++) {
        ProcessRecord r=procs.valueAt(ia);
        if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
          continue;
        }
        if (!needSep) {
          pw.println("String_Node_Str");
          needSep=true;
          printedAnything=true;
        }
        pw.print(r.persistent ? "String_Node_Str" : "String_Node_Str");
        pw.print("String_Node_Str");
        pw.print(procs.keyAt(ia));
        pw.print("String_Node_Str");
        pw.println(r);
        r.dump(pw,"String_Node_Str");
        if (r.persistent) {
          numPers++;
        }
      }
    }
  }
  if (mIsolatedProcesses.size() > 0) {
    boolean printed=false;
    for (int i=0; i < mIsolatedProcesses.size(); i++) {
      ProcessRecord r=mIsolatedProcesses.valueAt(i);
      if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
        continue;
      }
      if (!printed) {
        if (needSep) {
          pw.println();
        }
        pw.println("String_Node_Str");
        printedAnything=true;
        printed=true;
        needSep=true;
      }
      pw.println(String.format("String_Node_Str","String_Node_Str",i,r.toString()));
    }
  }
  if (mLruProcesses.size() > 0) {
    if (needSep) {
      pw.println();
    }
    pw.print("String_Node_Str");
    pw.print(mLruProcesses.size());
    pw.print("String_Node_Str");
    pw.print(mLruProcesses.size() - mLruProcessActivityStart);
    pw.print("String_Node_Str");
    pw.print(mLruProcesses.size() - mLruProcessServiceStart);
    pw.println("String_Node_Str");
    dumpProcessOomList(pw,this,mLruProcesses,"String_Node_Str","String_Node_Str","String_Node_Str",false,dumpPackage);
    needSep=true;
    printedAnything=true;
  }
  if (dumpAll || dumpPackage != null) {
synchronized (mPidsSelfLocked) {
      boolean printed=false;
      for (int i=0; i < mPidsSelfLocked.size(); i++) {
        ProcessRecord r=mPidsSelfLocked.valueAt(i);
        if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printed=true;
          printedAnything=true;
        }
        pw.print("String_Node_Str");
        pw.print(mPidsSelfLocked.keyAt(i));
        pw.print("String_Node_Str");
        pw.println(mPidsSelfLocked.valueAt(i));
      }
    }
  }
  if (mForegroundProcesses.size() > 0) {
synchronized (mPidsSelfLocked) {
      boolean printed=false;
      for (int i=0; i < mForegroundProcesses.size(); i++) {
        ProcessRecord r=mPidsSelfLocked.get(mForegroundProcesses.valueAt(i).pid);
        if (dumpPackage != null && (r == null || !r.pkgList.containsKey(dumpPackage))) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printed=true;
          printedAnything=true;
        }
        pw.print("String_Node_Str");
        pw.print(mForegroundProcesses.keyAt(i));
        pw.print("String_Node_Str");
        pw.println(mForegroundProcesses.valueAt(i));
      }
    }
  }
  if (mPersistentStartingProcesses.size() > 0) {
    if (needSep)     pw.println();
    needSep=true;
    printedAnything=true;
    pw.println("String_Node_Str");
    dumpProcessList(pw,this,mPersistentStartingProcesses,"String_Node_Str","String_Node_Str","String_Node_Str",dumpPackage);
  }
  if (mRemovedProcesses.size() > 0) {
    if (needSep)     pw.println();
    needSep=true;
    printedAnything=true;
    pw.println("String_Node_Str");
    dumpProcessList(pw,this,mRemovedProcesses,"String_Node_Str","String_Node_Str","String_Node_Str",dumpPackage);
  }
  if (mProcessesOnHold.size() > 0) {
    if (needSep)     pw.println();
    needSep=true;
    printedAnything=true;
    pw.println("String_Node_Str");
    dumpProcessList(pw,this,mProcessesOnHold,"String_Node_Str","String_Node_Str","String_Node_Str",dumpPackage);
  }
  needSep=dumpProcessesToGc(fd,pw,args,opti,needSep,dumpAll,dumpPackage);
  if (mProcessCrashTimes.getMap().size() > 0) {
    boolean printed=false;
    long now=SystemClock.uptimeMillis();
    final ArrayMap<String,SparseArray<Long>> pmap=mProcessCrashTimes.getMap();
    final int NP=pmap.size();
    for (int ip=0; ip < NP; ip++) {
      String pname=pmap.keyAt(ip);
      SparseArray<Long> uids=pmap.valueAt(ip);
      final int N=uids.size();
      for (int i=0; i < N; i++) {
        int puid=uids.keyAt(i);
        ProcessRecord r=mProcessNames.get(pname,puid);
        if (dumpPackage != null && (r == null || !r.pkgList.containsKey(dumpPackage))) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printed=true;
          printedAnything=true;
        }
        pw.print("String_Node_Str");
        pw.print(pname);
        pw.print("String_Node_Str");
        pw.print(puid);
        pw.print("String_Node_Str");
        TimeUtils.formatDuration(now - uids.valueAt(i),pw);
        pw.println("String_Node_Str");
      }
    }
  }
  if (mBadProcesses.getMap().size() > 0) {
    boolean printed=false;
    final ArrayMap<String,SparseArray<BadProcessInfo>> pmap=mBadProcesses.getMap();
    final int NP=pmap.size();
    for (int ip=0; ip < NP; ip++) {
      String pname=pmap.keyAt(ip);
      SparseArray<BadProcessInfo> uids=pmap.valueAt(ip);
      final int N=uids.size();
      for (int i=0; i < N; i++) {
        int puid=uids.keyAt(i);
        ProcessRecord r=mProcessNames.get(pname,puid);
        if (dumpPackage != null && (r == null || !r.pkgList.containsKey(dumpPackage))) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printedAnything=true;
        }
        BadProcessInfo info=uids.valueAt(i);
        pw.print("String_Node_Str");
        pw.print(pname);
        pw.print("String_Node_Str");
        pw.print(puid);
        pw.print("String_Node_Str");
        pw.println(info.time);
        if (info.shortMsg != null) {
          pw.print("String_Node_Str");
          pw.println(info.shortMsg);
        }
        if (info.longMsg != null) {
          pw.print("String_Node_Str");
          pw.println(info.longMsg);
        }
        if (info.stack != null) {
          pw.println("String_Node_Str");
          int lastPos=0;
          for (int pos=0; pos < info.stack.length(); pos++) {
            if (info.stack.charAt(pos) == '\n') {
              pw.print("String_Node_Str");
              pw.write(info.stack,lastPos,pos - lastPos);
              pw.println();
              lastPos=pos + 1;
            }
          }
          if (lastPos < info.stack.length()) {
            pw.print("String_Node_Str");
            pw.write(info.stack,lastPos,info.stack.length() - lastPos);
            pw.println();
          }
        }
      }
    }
  }
  if (dumpPackage == null) {
    pw.println();
    needSep=false;
    pw.println("String_Node_Str");
    for (int i=0; i < mStartedUsers.size(); i++) {
      UserStartedState uss=mStartedUsers.valueAt(i);
      pw.print("String_Node_Str");
      pw.print(uss.mHandle.getIdentifier());
      pw.print("String_Node_Str");
      uss.dump("String_Node_Str",pw);
    }
    pw.print("String_Node_Str");
    for (int i=0; i < mStartedUserArray.length; i++) {
      if (i > 0)       pw.print("String_Node_Str");
      pw.print(mStartedUserArray[i]);
    }
    pw.println("String_Node_Str");
    pw.print("String_Node_Str");
    for (int i=0; i < mUserLru.size(); i++) {
      if (i > 0)       pw.print("String_Node_Str");
      pw.print(mUserLru.get(i));
    }
    pw.println("String_Node_Str");
    if (dumpAll) {
      pw.print("String_Node_Str");
      pw.println(Arrays.toString(mStartedUserArray));
    }
synchronized (mUserProfileGroupIdsSelfLocked) {
      if (mUserProfileGroupIdsSelfLocked.size() > 0) {
        pw.println("String_Node_Str");
        for (int i=0; i < mUserProfileGroupIdsSelfLocked.size(); i++) {
          pw.print("String_Node_Str");
          pw.print(mUserProfileGroupIdsSelfLocked.keyAt(i));
          pw.print("String_Node_Str");
          pw.println(mUserProfileGroupIdsSelfLocked.valueAt(i));
        }
      }
    }
  }
  if (mHomeProcess != null && (dumpPackage == null || mHomeProcess.pkgList.containsKey(dumpPackage))) {
    if (needSep) {
      pw.println();
      needSep=false;
    }
    pw.println("String_Node_Str" + mHomeProcess);
  }
  if (mPreviousProcess != null && (dumpPackage == null || mPreviousProcess.pkgList.containsKey(dumpPackage))) {
    if (needSep) {
      pw.println();
      needSep=false;
    }
    pw.println("String_Node_Str" + mPreviousProcess);
  }
  if (dumpAll) {
    StringBuilder sb=new StringBuilder(128);
    sb.append("String_Node_Str");
    TimeUtils.formatDuration(mPreviousProcessVisibleTime,sb);
    pw.println(sb);
  }
  if (mHeavyWeightProcess != null && (dumpPackage == null || mHeavyWeightProcess.pkgList.containsKey(dumpPackage))) {
    if (needSep) {
      pw.println();
      needSep=false;
    }
    pw.println("String_Node_Str" + mHeavyWeightProcess);
  }
  if (dumpPackage == null) {
    pw.println("String_Node_Str" + mConfiguration);
  }
  if (dumpAll) {
    pw.println("String_Node_Str" + getFocusedStack().mConfigWillChange);
    if (mCompatModePackages.getPackages().size() > 0) {
      boolean printed=false;
      for (      Map.Entry<String,Integer> entry : mCompatModePackages.getPackages().entrySet()) {
        String pkg=entry.getKey();
        int mode=entry.getValue();
        if (dumpPackage != null && !dumpPackage.equals(pkg)) {
          continue;
        }
        if (!printed) {
          pw.println("String_Node_Str");
          printed=true;
        }
        pw.print("String_Node_Str");
        pw.print(pkg);
        pw.print("String_Node_Str");
        pw.print(mode);
        pw.println();
      }
    }
  }
  if (dumpPackage == null) {
    if (mSleeping || mWentToSleep || mLockScreenShown) {
      pw.println("String_Node_Str" + mSleeping + "String_Node_Str"+ mWentToSleep+ "String_Node_Str"+ mLockScreenShown);
    }
    if (mShuttingDown || mRunningVoice) {
      pw.print("String_Node_Str" + mShuttingDown + "String_Node_Str"+ mRunningVoice);
    }
  }
  if (mDebugApp != null || mOrigDebugApp != null || mDebugTransient || mOrigWaitForDebugger) {
    if (dumpPackage == null || dumpPackage.equals(mDebugApp) || dumpPackage.equals(mOrigDebugApp)) {
      if (needSep) {
        pw.println();
        needSep=false;
      }
      pw.println("String_Node_Str" + mDebugApp + "String_Node_Str"+ mOrigDebugApp+ "String_Node_Str"+ mDebugTransient+ "String_Node_Str"+ mOrigWaitForDebugger);
    }
  }
  if (mOpenGlTraceApp != null) {
    if (dumpPackage == null || dumpPackage.equals(mOpenGlTraceApp)) {
      if (needSep) {
        pw.println();
        needSep=false;
      }
      pw.println("String_Node_Str" + mOpenGlTraceApp);
    }
  }
  if (mProfileApp != null || mProfileProc != null || mProfileFile != null || mProfileFd != null) {
    if (dumpPackage == null || dumpPackage.equals(mProfileApp)) {
      if (needSep) {
        pw.println();
        needSep=false;
      }
      pw.println("String_Node_Str" + mProfileApp + "String_Node_Str"+ mProfileProc);
      pw.println("String_Node_Str" + mProfileFile + "String_Node_Str"+ mProfileFd);
      pw.println("String_Node_Str" + mSamplingInterval + "String_Node_Str"+ mAutoStopProfiler);
      pw.println("String_Node_Str" + mProfileType);
    }
  }
  if (dumpPackage == null) {
    if (mAlwaysFinishActivities || mController != null) {
      pw.println("String_Node_Str" + mAlwaysFinishActivities + "String_Node_Str"+ mController);
    }
    if (dumpAll) {
      pw.println("String_Node_Str" + numPers);
      pw.println("String_Node_Str" + mProcessesReady + "String_Node_Str"+ mSystemReady);
      pw.println("String_Node_Str" + mBooting + "String_Node_Str"+ mBooted+ "String_Node_Str"+ mFactoryTest);
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(mLastPowerCheckRealtime,pw);
      pw.println("String_Node_Str");
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(mLastPowerCheckUptime,pw);
      pw.println("String_Node_Str");
      pw.println("String_Node_Str" + mStackSupervisor.mGoingToSleep);
      pw.println("String_Node_Str" + mStackSupervisor.mLaunchingActivity);
      pw.println("String_Node_Str" + mAdjSeq + "String_Node_Str"+ mLruSeq);
      pw.println("String_Node_Str" + mNumNonCachedProcs + "String_Node_Str"+ mLruProcesses.size()+ "String_Node_Str"+ "String_Node_Str"+ mNumCachedHiddenProcs+ "String_Node_Str"+ mNumServiceProcs+ "String_Node_Str"+ mNewNumServiceProcs);
      pw.println("String_Node_Str" + mAllowLowerMemLevel + "String_Node_Str"+ mLastMemoryLevel+ "String_Node_Str"+ mLastNumProcesses);
      long now=SystemClock.uptimeMillis();
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(now,mLastIdleTime,pw);
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(getLowRamTimeSinceIdle(now),pw);
      pw.println();
    }
  }
  if (!printedAnything) {
    pw.println("String_Node_Str");
  }
}

Fixed version (ground truth):
void dumpProcessesLocked(FileDescriptor fd,PrintWriter pw,String[] args,int opti,boolean dumpAll,String dumpPackage){
  boolean needSep=false;
  boolean printedAnything=false;
  int numPers=0;
  pw.println("String_Node_Str");
  if (dumpAll) {
    final int NP=mProcessNames.getMap().size();
    for (int ip=0; ip < NP; ip++) {
      SparseArray<ProcessRecord> procs=mProcessNames.getMap().valueAt(ip);
      final int NA=procs.size();
      for (int ia=0; ia < NA; ia++) {
        ProcessRecord r=procs.valueAt(ia);
        if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
          continue;
        }
        if (!needSep) {
          pw.println("String_Node_Str");
          needSep=true;
          printedAnything=true;
        }
        pw.print(r.persistent ? "String_Node_Str" : "String_Node_Str");
        pw.print("String_Node_Str");
        pw.print(procs.keyAt(ia));
        pw.print("String_Node_Str");
        pw.println(r);
        r.dump(pw,"String_Node_Str");
        if (r.persistent) {
          numPers++;
        }
      }
    }
  }
  if (mIsolatedProcesses.size() > 0) {
    boolean printed=false;
    for (int i=0; i < mIsolatedProcesses.size(); i++) {
      ProcessRecord r=mIsolatedProcesses.valueAt(i);
      if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
        continue;
      }
      if (!printed) {
        if (needSep) {
          pw.println();
        }
        pw.println("String_Node_Str");
        printedAnything=true;
        printed=true;
        needSep=true;
      }
      pw.println(String.format("String_Node_Str","String_Node_Str",i,r.toString()));
    }
  }
  if (mLruProcesses.size() > 0) {
    if (needSep) {
      pw.println();
    }
    pw.print("String_Node_Str");
    pw.print(mLruProcesses.size());
    pw.print("String_Node_Str");
    pw.print(mLruProcesses.size() - mLruProcessActivityStart);
    pw.print("String_Node_Str");
    pw.print(mLruProcesses.size() - mLruProcessServiceStart);
    pw.println("String_Node_Str");
    dumpProcessOomList(pw,this,mLruProcesses,"String_Node_Str","String_Node_Str","String_Node_Str",false,dumpPackage);
    needSep=true;
    printedAnything=true;
  }
  if (dumpAll || dumpPackage != null) {
synchronized (mPidsSelfLocked) {
      boolean printed=false;
      for (int i=0; i < mPidsSelfLocked.size(); i++) {
        ProcessRecord r=mPidsSelfLocked.valueAt(i);
        if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printed=true;
          printedAnything=true;
        }
        pw.print("String_Node_Str");
        pw.print(mPidsSelfLocked.keyAt(i));
        pw.print("String_Node_Str");
        pw.println(mPidsSelfLocked.valueAt(i));
      }
    }
  }
  if (mForegroundProcesses.size() > 0) {
synchronized (mPidsSelfLocked) {
      boolean printed=false;
      for (int i=0; i < mForegroundProcesses.size(); i++) {
        ProcessRecord r=mPidsSelfLocked.get(mForegroundProcesses.valueAt(i).pid);
        if (dumpPackage != null && (r == null || !r.pkgList.containsKey(dumpPackage))) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printed=true;
          printedAnything=true;
        }
        pw.print("String_Node_Str");
        pw.print(mForegroundProcesses.keyAt(i));
        pw.print("String_Node_Str");
        pw.println(mForegroundProcesses.valueAt(i));
      }
    }
  }
  if (mPersistentStartingProcesses.size() > 0) {
    if (needSep)     pw.println();
    needSep=true;
    printedAnything=true;
    pw.println("String_Node_Str");
    dumpProcessList(pw,this,mPersistentStartingProcesses,"String_Node_Str","String_Node_Str","String_Node_Str",dumpPackage);
  }
  if (mRemovedProcesses.size() > 0) {
    if (needSep)     pw.println();
    needSep=true;
    printedAnything=true;
    pw.println("String_Node_Str");
    dumpProcessList(pw,this,mRemovedProcesses,"String_Node_Str","String_Node_Str","String_Node_Str",dumpPackage);
  }
  if (mProcessesOnHold.size() > 0) {
    if (needSep)     pw.println();
    needSep=true;
    printedAnything=true;
    pw.println("String_Node_Str");
    dumpProcessList(pw,this,mProcessesOnHold,"String_Node_Str","String_Node_Str","String_Node_Str",dumpPackage);
  }
  needSep=dumpProcessesToGc(fd,pw,args,opti,needSep,dumpAll,dumpPackage);
  if (mProcessCrashTimes.getMap().size() > 0) {
    boolean printed=false;
    long now=SystemClock.uptimeMillis();
    final ArrayMap<String,SparseArray<Long>> pmap=mProcessCrashTimes.getMap();
    final int NP=pmap.size();
    for (int ip=0; ip < NP; ip++) {
      String pname=pmap.keyAt(ip);
      SparseArray<Long> uids=pmap.valueAt(ip);
      final int N=uids.size();
      for (int i=0; i < N; i++) {
        int puid=uids.keyAt(i);
        ProcessRecord r=mProcessNames.get(pname,puid);
        if (dumpPackage != null && (r == null || !r.pkgList.containsKey(dumpPackage))) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printed=true;
          printedAnything=true;
        }
        pw.print("String_Node_Str");
        pw.print(pname);
        pw.print("String_Node_Str");
        pw.print(puid);
        pw.print("String_Node_Str");
        TimeUtils.formatDuration(now - uids.valueAt(i),pw);
        pw.println("String_Node_Str");
      }
    }
  }
  if (mBadProcesses.getMap().size() > 0) {
    boolean printed=false;
    final ArrayMap<String,SparseArray<BadProcessInfo>> pmap=mBadProcesses.getMap();
    final int NP=pmap.size();
    for (int ip=0; ip < NP; ip++) {
      String pname=pmap.keyAt(ip);
      SparseArray<BadProcessInfo> uids=pmap.valueAt(ip);
      final int N=uids.size();
      for (int i=0; i < N; i++) {
        int puid=uids.keyAt(i);
        ProcessRecord r=mProcessNames.get(pname,puid);
        if (dumpPackage != null && (r == null || !r.pkgList.containsKey(dumpPackage))) {
          continue;
        }
        if (!printed) {
          if (needSep)           pw.println();
          needSep=true;
          pw.println("String_Node_Str");
          printedAnything=true;
        }
        BadProcessInfo info=uids.valueAt(i);
        pw.print("String_Node_Str");
        pw.print(pname);
        pw.print("String_Node_Str");
        pw.print(puid);
        pw.print("String_Node_Str");
        pw.println(info.time);
        if (info.shortMsg != null) {
          pw.print("String_Node_Str");
          pw.println(info.shortMsg);
        }
        if (info.longMsg != null) {
          pw.print("String_Node_Str");
          pw.println(info.longMsg);
        }
        if (info.stack != null) {
          pw.println("String_Node_Str");
          int lastPos=0;
          for (int pos=0; pos < info.stack.length(); pos++) {
            if (info.stack.charAt(pos) == '\n') {
              pw.print("String_Node_Str");
              pw.write(info.stack,lastPos,pos - lastPos);
              pw.println();
              lastPos=pos + 1;
            }
          }
          if (lastPos < info.stack.length()) {
            pw.print("String_Node_Str");
            pw.write(info.stack,lastPos,info.stack.length() - lastPos);
            pw.println();
          }
        }
      }
    }
  }
  if (dumpPackage == null) {
    pw.println();
    needSep=false;
    pw.println("String_Node_Str");
    for (int i=0; i < mStartedUsers.size(); i++) {
      UserStartedState uss=mStartedUsers.valueAt(i);
      pw.print("String_Node_Str");
      pw.print(uss.mHandle.getIdentifier());
      pw.print("String_Node_Str");
      uss.dump("String_Node_Str",pw);
    }
    pw.print("String_Node_Str");
    for (int i=0; i < mStartedUserArray.length; i++) {
      if (i > 0)       pw.print("String_Node_Str");
      pw.print(mStartedUserArray[i]);
    }
    pw.println("String_Node_Str");
    pw.print("String_Node_Str");
    for (int i=0; i < mUserLru.size(); i++) {
      if (i > 0)       pw.print("String_Node_Str");
      pw.print(mUserLru.get(i));
    }
    pw.println("String_Node_Str");
    if (dumpAll) {
      pw.print("String_Node_Str");
      pw.println(Arrays.toString(mStartedUserArray));
    }
synchronized (mUserProfileGroupIdsSelfLocked) {
      if (mUserProfileGroupIdsSelfLocked.size() > 0) {
        pw.println("String_Node_Str");
        for (int i=0; i < mUserProfileGroupIdsSelfLocked.size(); i++) {
          pw.print("String_Node_Str");
          pw.print(mUserProfileGroupIdsSelfLocked.keyAt(i));
          pw.print("String_Node_Str");
          pw.println(mUserProfileGroupIdsSelfLocked.valueAt(i));
        }
      }
    }
  }
  if (mHomeProcess != null && (dumpPackage == null || mHomeProcess.pkgList.containsKey(dumpPackage))) {
    if (needSep) {
      pw.println();
      needSep=false;
    }
    pw.println("String_Node_Str" + mHomeProcess);
  }
  if (mPreviousProcess != null && (dumpPackage == null || mPreviousProcess.pkgList.containsKey(dumpPackage))) {
    if (needSep) {
      pw.println();
      needSep=false;
    }
    pw.println("String_Node_Str" + mPreviousProcess);
  }
  if (dumpAll) {
    StringBuilder sb=new StringBuilder(128);
    sb.append("String_Node_Str");
    TimeUtils.formatDuration(mPreviousProcessVisibleTime,sb);
    pw.println(sb);
  }
  if (mHeavyWeightProcess != null && (dumpPackage == null || mHeavyWeightProcess.pkgList.containsKey(dumpPackage))) {
    if (needSep) {
      pw.println();
      needSep=false;
    }
    pw.println("String_Node_Str" + mHeavyWeightProcess);
  }
  if (dumpPackage == null) {
    pw.println("String_Node_Str" + mConfiguration);
  }
  if (dumpAll) {
    pw.println("String_Node_Str" + getFocusedStack().mConfigWillChange);
    if (mCompatModePackages.getPackages().size() > 0) {
      boolean printed=false;
      for (      Map.Entry<String,Integer> entry : mCompatModePackages.getPackages().entrySet()) {
        String pkg=entry.getKey();
        int mode=entry.getValue();
        if (dumpPackage != null && !dumpPackage.equals(pkg)) {
          continue;
        }
        if (!printed) {
          pw.println("String_Node_Str");
          printed=true;
        }
        pw.print("String_Node_Str");
        pw.print(pkg);
        pw.print("String_Node_Str");
        pw.print(mode);
        pw.println();
      }
    }
  }
  if (dumpPackage == null) {
    if (mSleeping || mWentToSleep || mLockScreenShown) {
      pw.println("String_Node_Str" + mSleeping + "String_Node_Str"+ mWentToSleep+ "String_Node_Str"+ mLockScreenShown);
    }
    if (mShuttingDown || mRunningVoice) {
      pw.print("String_Node_Str" + mShuttingDown + "String_Node_Str"+ mRunningVoice);
    }
  }
  if (mDebugApp != null || mOrigDebugApp != null || mDebugTransient || mOrigWaitForDebugger) {
    if (dumpPackage == null || dumpPackage.equals(mDebugApp) || dumpPackage.equals(mOrigDebugApp)) {
      if (needSep) {
        pw.println();
        needSep=false;
      }
      pw.println("String_Node_Str" + mDebugApp + "String_Node_Str"+ mOrigDebugApp+ "String_Node_Str"+ mDebugTransient+ "String_Node_Str"+ mOrigWaitForDebugger);
    }
  }
  if (mOpenGlTraceApp != null) {
    if (dumpPackage == null || dumpPackage.equals(mOpenGlTraceApp)) {
      if (needSep) {
        pw.println();
        needSep=false;
      }
      pw.println("String_Node_Str" + mOpenGlTraceApp);
    }
  }
  if (mProfileApp != null || mProfileProc != null || mProfileFile != null || mProfileFd != null) {
    if (dumpPackage == null || dumpPackage.equals(mProfileApp)) {
      if (needSep) {
        pw.println();
        needSep=false;
      }
      pw.println("String_Node_Str" + mProfileApp + "String_Node_Str"+ mProfileProc);
      pw.println("String_Node_Str" + mProfileFile + "String_Node_Str"+ mProfileFd);
      pw.println("String_Node_Str" + mSamplingInterval + "String_Node_Str"+ mAutoStopProfiler);
      pw.println("String_Node_Str" + mProfileType);
    }
  }
  if (dumpPackage == null) {
    if (mAlwaysFinishActivities || mController != null) {
      pw.println("String_Node_Str" + mAlwaysFinishActivities + "String_Node_Str"+ mController);
    }
    if (dumpAll) {
      pw.println("String_Node_Str" + numPers);
      pw.println("String_Node_Str" + mProcessesReady + "String_Node_Str"+ mSystemReady+ "String_Node_Str"+ mBooted+ "String_Node_Str"+ mFactoryTest);
      pw.println("String_Node_Str" + mBooting + "String_Node_Str"+ mCallFinishBooting+ "String_Node_Str"+ mBootAnimationComplete);
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(mLastPowerCheckRealtime,pw);
      pw.println("String_Node_Str");
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(mLastPowerCheckUptime,pw);
      pw.println("String_Node_Str");
      pw.println("String_Node_Str" + mStackSupervisor.mGoingToSleep);
      pw.println("String_Node_Str" + mStackSupervisor.mLaunchingActivity);
      pw.println("String_Node_Str" + mAdjSeq + "String_Node_Str"+ mLruSeq);
      pw.println("String_Node_Str" + mNumNonCachedProcs + "String_Node_Str"+ mLruProcesses.size()+ "String_Node_Str"+ "String_Node_Str"+ mNumCachedHiddenProcs+ "String_Node_Str"+ mNumServiceProcs+ "String_Node_Str"+ mNewNumServiceProcs);
      pw.println("String_Node_Str" + mAllowLowerMemLevel + "String_Node_Str"+ mLastMemoryLevel+ "String_Node_Str"+ mLastNumProcesses);
      long now=SystemClock.uptimeMillis();
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(now,mLastIdleTime,pw);
      pw.print("String_Node_Str");
      TimeUtils.formatDuration(getLowRamTimeSinceIdle(now),pw);
      pw.println();
    }
  }
  if (!printedAnything) {
    pw.println("String_Node_Str");
  }
}