aprantl added a comment.

I think I misread your patch. Now the naming of success_handler makes much more 
sense, too.

What do you think about defining a function that takes an SBError result, and a 
function that converts this error into a string? This would allow chaining more 
than one SBAPI command in one lldb-mi command implementation. I'm not sure how 
common this is, though.

  bool handleSBError(SBError error, std::function<std::string(SBError)> 
convert) {
    if (error.Success())
      return false;
  
    SetError(convert(error));
    return error_handler();
  }
  
  ...
  bool CMICmdCmdExecContinue::Execute() {
    if 
(handleSBError(CMICmnLLDBDebugSessionInfo::Instance().GetProcess().Continue(), 
[](SBError error){
          return CMIUtilString::Format(
             MIRSRC(IDS_CMD_ERR_SET_NEW_DRIVER_STATE),
             this->m_cmdData.strMiCmd.c_str(),
             rErrMsg.c_str());'
         }) 
      return MIstatus::failure;
  
    // potentially run other SBAPI commands...
    return MIstatus::success;
  };


https://reviews.llvm.org/D48295



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to