function to print errorcode info and avoid misoperation after free model

This commit is contained in:
xuanyue 2020-10-27 14:13:10 +08:00
parent acd156c084
commit c8cc95b0ee
4 changed files with 26 additions and 21 deletions

View File

@ -17,6 +17,8 @@
#ifndef MINDSPORE_LITE_INCLUDE_ERRORCODE_H_
#define MINDSPORE_LITE_INCLUDE_ERRORCODE_H_
#include <string>
namespace mindspore {
namespace lite {
/// \brief STATUS defined for holding error code in MindSpore Lite.
@ -61,7 +63,9 @@ constexpr int RET_INPUT_PARAM_INVALID = -600; /**< Invalid input param by user.
/// \brief Print description of errorcode.
///
/// \param[in] error_code define return status of procedure.
void PrintErrorInfo(STATUS error_code);
///
/// \return String of errorcode info.
std::string GetErrorInfo(STATUS error_code);
} // namespace lite
} // namespace mindspore

View File

@ -16,12 +16,11 @@
#include "include/errorcode.h"
#include <map>
#include <iostream>
#include <string>
namespace mindspore {
namespace lite {
void PrintErrorInfo(STATUS status) {
std::string GetErrorInfo(STATUS status) {
std::map<int, std::string> info_map = {{RET_OK, "No error occurs."},
{RET_ERROR, "Common error code."},
{RET_NULL_PTR, "NULL pointer returned."},
@ -42,7 +41,7 @@ void PrintErrorInfo(STATUS status) {
{RET_INFER_ERR, "Failed to infer shape."},
{RET_INFER_INVALID, "Invalid infer shape before runtime."},
{RET_INPUT_PARAM_INVALID, "Invalid input param by user."}};
std::cout << info_map[status] << std::endl;
return info_map.find(status) == info_map.end() ? "Unknown error" : info_map[status];
}
} // namespace lite
} // namespace mindspore

View File

@ -269,6 +269,11 @@ int LiteSession::CompileGraph(Model *model) {
is_running_.store(false);
return RET_PARAM_INVALID;
}
if (model->buf == nullptr) {
MS_LOG(ERROR) << "The input model buf is nullptr.";
is_running_.store(false);
return RET_PARAM_INVALID;
}
auto ret = ConvertTensors(model);
if (ret != RET_OK) {

View File

@ -106,18 +106,17 @@ MetaGraphT *Converter::Convert(const converter::Flags *flag) {
int RunConverter(int argc, const char **argv) {
std::unique_ptr<converter::Flags> flags(new (std::nothrow) converter::Flags);
if (flags == nullptr) {
MS_LOG(ERROR) << "new flags error ";
std::cout << "NEW FLAGS ERROR:" << RET_MEMORY_FAILED << std::endl;
PrintErrorInfo(RET_MEMORY_FAILED);
MS_LOG(ERROR) << "NEW FLAGS ERROR:" << RET_MEMORY_FAILED << " " << GetErrorInfo(RET_MEMORY_FAILED);
std::cout << "NEW FLAGS ERROR:" << RET_MEMORY_FAILED << " " << GetErrorInfo(RET_MEMORY_FAILED) << std::endl;
return RET_MEMORY_FAILED;
}
auto status = flags->Init(argc, argv);
if (status != RET_OK) {
if (status != RET_SUCCESS_EXIT) {
MS_LOG(ERROR) << "converter::Flags Init failed: " << status;
std::cout << "CONVERTER::FLAGS INIT FAILED:" << status << std::endl;
MS_LOG(ERROR) << "CONVERTER::FLAGS INIT FAILED:" << status << " " << GetErrorInfo(status) << std::endl;
std::cout << "CONVERTER::FLAGS INIT FAILED:" << status << " " << GetErrorInfo(status) << std::endl;
}
PrintErrorInfo(status);
std::cout << GetErrorInfo(status) << std::endl;
return status;
}
// Load graph
@ -147,18 +146,18 @@ int RunConverter(int argc, const char **argv) {
fb_graph = onnxConverter.Convert(flags.get());
} break;
default: {
MS_LOG(ERROR) << "Unsupported fmkType: " << flags->fmk;
std::cout << "UNSUPPORTED FMKTYPE " << flags->fmk << ":" << RET_INPUT_PARAM_INVALID << std::endl;
PrintErrorInfo(RET_INPUT_PARAM_INVALID);
MS_LOG(ERROR) << "UNSUPPORTED FMKTYPE " << flags->fmk << ":" << RET_INPUT_PARAM_INVALID << " "
<< GetErrorInfo(RET_INPUT_PARAM_INVALID);
std::cout << "UNSUPPORTED FMKTYPE " << flags->fmk << ":" << RET_INPUT_PARAM_INVALID << " "
<< GetErrorInfo(RET_INPUT_PARAM_INVALID) << std::endl;
return RET_INPUT_PARAM_INVALID;
}
}
NoSupportOp::GetInstance()->PrintOps();
status = ReturnCode::GetSingleReturnCode()->GetReturnCode();
if (fb_graph == nullptr) {
MS_LOG(ERROR) << "Convert model return nullptr";
std::cout << "CONVERT RESULT FAILED:" << status << std::endl;
PrintErrorInfo(status);
MS_LOG(ERROR) << "CONVERT RESULT FAILED:" << status << " " << GetErrorInfo(status);
std::cout << "CONVERT RESULT FAILED:" << status << " " << GetErrorInfo(status) << std::endl;
return status;
}
@ -167,16 +166,14 @@ int RunConverter(int argc, const char **argv) {
fb_graph->version = Version();
status = storage.Save(*fb_graph, flags->outputFile);
if (status != RET_OK) {
MS_LOG(ERROR) << "Save graph to file failed";
std::cout << "SAVE GRAPH FAILED:" << status << std::endl;
PrintErrorInfo(status);
MS_LOG(ERROR) << "SAVE GRAPH FAILED:" << status << " " << GetErrorInfo(status);
std::cout << "SAVE GRAPH FAILED:" << status << " " << GetErrorInfo(status) << std::endl;
return status;
}
delete fb_graph;
MS_LOG(INFO) << "CONVERT RESULT: SUCCESS!";
MS_LOG(INFO) << "CONVERT RESULT SUCCESS:" << status;
std::cout << "CONVERT RESULT SUCCESS:" << status << std::endl;
PrintErrorInfo(status);
return status;
}
} // namespace lite