docs: function() {
    var exitCode = 0;
    var req = { command: 'disconnect' };
  
    logger.entry('sendCommand', logger.NO_CLIENT_ID);
  
    if (evaluated) {
      // No need to send the same command twice.
      logger.log('data', logger.NO_CLIENT_ID, 'Command already sent');
    }
    else {
      // Send the command to the debugger.
      logger.entry('client.reqEval', logger.NO_CLIENT_ID);
      logger.log('parms', logger.NO_CLIENT_ID, 'command:', command);
  
      client.reqEval(command, function(err, res) {
        // Wait for the response from the debugger
        logger.entry('client.reqEval.callback', logger.NO_CLIENT_ID);
        logger.log('data', logger.NO_CLIENT_ID, 'err:', err);
        logger.log('detail', logger.NO_CLIENT_ID, 'res:', res);
        if (err) {
          // The debugger failed to evaluate the command.
          logger.log('error', logger.NO_CLIENT_ID,
                     'Debugger failed to evaluate command');
          console.error(res.message);
          exitCode = 20;
        } else {
          // The debugger did what we asked!
          console.log('Command evaluated successfully');
        }
  
        // Regardless of the result, disconnect from the debugger.
        logger.entry('client.req', logger.NO_CLIENT_ID);
        logger.log('parms', logger.NO_CLIENT_ID, 'req:', req);
        client.req(req, function(err, res) {
          logger.entry('client.req.callback', logger.NO_CLIENT_ID);
          logger.log('data', logger.NO_CLIENT_ID, 'err:', err);
          logger.log('detail', logger.NO_CLIENT_ID, 'res:', res);
          if (err) {
            logger.log('error', logger.NO_CLIENT_ID,
                       'Debugger failed to disconnect');
          }
  
          // Destroy the client, closing the socket.
          logger.entry('client.destroy', logger.NO_CLIENT_ID);
          client.destroy();
          logger.exit('client.destroy', logger.NO_CLIENT_ID, null);
          logger.exit('client.req.callback', logger.NO_CLIENT_ID, null);
  
          // Time to end.
          process.exit(exitCode);
        });
        logger.exit('client.reqEval.callback', logger.NO_CLIENT_ID, null);
      });
  
      // Mark that we've now sent the command.
      evaluated = true;
      logger.log('debug', logger.NO_CLIENT_ID, 'evaluated:', evaluated);
    }
  
    logger.exit('sendCommand', logger.NO_CLIENT_ID, null);
  }