Skip to content

Commit

Permalink
properly extract error type from windows error message (#4780)
Browse files Browse the repository at this point in the history
Co-authored-by: Jon Soifer <jonso@microsoft.com>
  • Loading branch information
2 people authored and tqchen committed Jan 27, 2020
1 parent 00ec7f9 commit f71a10c
Showing 1 changed file with 23 additions and 6 deletions.
29 changes: 23 additions & 6 deletions python/tvm/_ffi/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,13 +194,30 @@ def _find_error_type(line):
-------
name : str The error name
"""
end_pos = line.find(":")
if end_pos == -1:
if sys.platform == "win32":
# Stack traces aren't logged on Windows due to a DMLC limitation,
# so we should try to get the underlying error another way.
# DMLC formats errors "[timestamp] file:line: ErrorMessage"
# ErrorMessage is usually formatted "ErrorType: message"
# We can try to extract the error type using the final ":"
end_pos = line.rfind(":")
if end_pos == -1:
return None
start_pos = line.rfind(":", 0, end_pos)
if start_pos == -1:
return None
err_name = line[start_pos + 1 : end_pos].strip()
if _valid_error_name(err_name):
return err_name
return None
else:
end_pos = line.find(":")
if end_pos == -1:
return None
err_name = line[:end_pos]
if _valid_error_name(err_name):
return err_name
return None
err_name = line[:end_pos]
if _valid_error_name(err_name):
return err_name
return None


def c2pyerror(err_msg):
Expand Down

0 comments on commit f71a10c

Please sign in to comment.