backtraces with --backtrace (#33478)

* backtraces without --debug

Currently `--debug` is too verbose and not-`--debug` gives to little
context about where exceptions are coming from.

So, instead, it'd be nice to have `spack --backtrace` and
`SPACK_BACKTRACE=1` as methods to get something inbetween: no verbose
debug messages, but always a full backtrace.

This is useful for CI, where we don't want to drown in debug messages
when installing deps, but we do want to get details where something goes
wrong if it goes wrong.

* completion
This commit is contained in:
Harmen Stoppels
2022-10-24 03:12:38 +02:00
committed by GitHub
parent 6c32c6fbdb
commit 7d99fbcafd
2 changed files with 10 additions and 2 deletions

View File

@@ -527,6 +527,12 @@ def make_argument_parser(**kwargs):
default="SPACK_STACKTRACE" in os.environ,
help="add stacktraces to all printed statements",
)
parser.add_argument(
"--backtrace",
action="store_true",
default="SPACK_BACKTRACE" in os.environ,
help="always show backtraces for exceptions",
)
parser.add_argument(
"-V", "--version", action="store_true", help="show version number and exit"
)
@@ -561,8 +567,10 @@ def setup_main_options(args):
# debug must be set first so that it can even affect behavior of
# errors raised by spack.config.
if args.debug or args.backtrace:
spack.error.debug = True
if args.debug:
spack.error.debug = args.debug
spack.util.debug.register_interrupt_handler()
spack.config.set("config:debug", True, scope="command_line")
spack.util.environment.tracing_enabled = True