private boolean makeAppCrashingLocked(
     ProcessRecord app,
     String shortMsg,
     String longMsg,
     String stackTrace,
     AppErrorDialog.Data data) {
   app.crashing = true;
   app.crashingReport =
       generateProcessError(
           app,
           ActivityManager.ProcessErrorStateInfo.CRASHED,
           null,
           shortMsg,
           longMsg,
           stackTrace);
   startAppProblemLocked(app);
   app.stopFreezingAllLocked();
   return handleAppCrashLocked(app, "force-crash" /*reason*/, shortMsg, longMsg, stackTrace, data);
 }
 void killAppAtUserRequestLocked(ProcessRecord app, Dialog fromDialog) {
   app.crashing = false;
   app.crashingReport = null;
   app.notResponding = false;
   app.notRespondingReport = null;
   if (app.anrDialog == fromDialog) {
     app.anrDialog = null;
   }
   if (app.waitDialog == fromDialog) {
     app.waitDialog = null;
   }
   if (app.pid > 0 && app.pid != MY_PID) {
     handleAppCrashLocked(
         app,
         "user-terminated" /*reason*/,
         null /*shortMsg*/,
         null /*longMsg*/,
         null /*stackTrace*/,
         null /*data*/);
     app.kill("user request after error", true);
   }
 }