This reverts commit cb935f3456.
Discussion in D68708 advises that green dragon is being briskly
refurbished, and it's good to have this patch up testing it.
73 lines
2.0 KiB
Python
73 lines
2.0 KiB
Python
# DExTer : Debugging Experience Tester
|
|
# ~~~~~~ ~ ~~ ~ ~~
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
"""Provides Dexter-specific exception types."""
|
|
|
|
|
|
class Dexception(Exception):
|
|
"""All dexter-specific exceptions derive from this."""
|
|
pass
|
|
|
|
|
|
class Error(Dexception):
|
|
"""Error. Prints 'error: <message>' without a traceback."""
|
|
pass
|
|
|
|
|
|
class DebuggerException(Dexception):
|
|
"""Any error from using the debugger."""
|
|
|
|
def __init__(self, msg, orig_exception=None):
|
|
super(DebuggerException, self).__init__(msg)
|
|
self.msg = msg
|
|
self.orig_exception = orig_exception
|
|
|
|
def __str__(self):
|
|
return str(self.msg)
|
|
|
|
|
|
class LoadDebuggerException(DebuggerException):
|
|
"""If specified debugger cannot be loaded."""
|
|
pass
|
|
|
|
|
|
class NotYetLoadedDebuggerException(LoadDebuggerException):
|
|
"""If specified debugger has not yet been attempted to load."""
|
|
|
|
def __init__(self):
|
|
super(NotYetLoadedDebuggerException,
|
|
self).__init__('not loaded', orig_exception=None)
|
|
|
|
|
|
class CommandParseError(Dexception):
|
|
"""If a command instruction cannot be successfully parsed."""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(CommandParseError, self).__init__(*args, **kwargs)
|
|
self.filename = None
|
|
self.lineno = None
|
|
self.info = None
|
|
self.src = None
|
|
self.caret = None
|
|
|
|
|
|
class ToolArgumentError(Dexception):
|
|
"""If a tool argument is invalid."""
|
|
pass
|
|
|
|
|
|
class BuildScriptException(Dexception):
|
|
"""If there is an error in a build script file."""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.script_error = kwargs.pop('script_error', None)
|
|
super(BuildScriptException, self).__init__(*args, **kwargs)
|
|
|
|
|
|
class HeuristicException(Dexception):
|
|
"""If there was a problem with the heuristic."""
|
|
pass
|