This patch allows a visual studio solution file to be passed directly into Dexter, instead of using a pre-built binary and a small internal solution file with template arguments. This is primarily to allow launching an application that has specific launch configuration requirements, without needing all the details of this configuration to be built directly into Dexter or adding a config file that simply duplicates existing settings in the VS solution. Reviewed By: Orlando Differential Revision: https://reviews.llvm.org/D110167
30 lines
1.0 KiB
Python
30 lines
1.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
|
|
"""Abstract Base class for controlling debuggers."""
|
|
|
|
import abc
|
|
|
|
class DebuggerControllerBase(object, metaclass=abc.ABCMeta):
|
|
@abc.abstractclassmethod
|
|
def _run_debugger_custom(self):
|
|
"""Specify your own implementation of run_debugger_custom in your own
|
|
controller.
|
|
"""
|
|
pass
|
|
|
|
def run_debugger(self, debugger):
|
|
"""Responsible for correctly launching and tearing down the debugger.
|
|
"""
|
|
self.debugger = debugger
|
|
with self.debugger:
|
|
if not self.debugger.loading_error:
|
|
self._run_debugger_custom()
|
|
|
|
# We may need to pickle this debugger controller after running the
|
|
# debugger. Debuggers are not picklable objects, so set to None.
|
|
self.debugger = None
|