mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-30 00:34:40 +00:00
Estimated hours taken: 6 Add a `--debug' option for Mercury-level debugging using the trace-based debugger. scripts/init_grade_options.sh-subr: scripts/parse_grade_options.sh-subr: scripts/mgnuc.in: scripts/ml.in: compiler/options.m: compiler/handle_options.m: compiler/mercury_compile.m: Split the old `--debug' option into `--low-level-debug' (formerly the absence of -DSPEED, now handle by -DLOWLEVEL_DEBUG) and `--c-debug' (passes -g to C compiler). Delete the old `debug' grade. Add support for new options `--require-tracing' (makes --trace minimum equivalent to --trace interfaces, and passes -DMR_REQUIRE_TRACING to C compiler) `--stack-trace' (passes -DMR_STACK_TRACE to C compiler; actually this one was already supported) and `--debug' (implies previous two), with corresponding grade modifiers `.trace', `.strce', and `.debug'. Actually I think there's little point in specifying just one of `--require-tracing' and `--stack-trace' so for the moment I'm just providing `--debug': the code for the more fine-grained options and grade modifiers has been added but commented out. runtime/mercury_conf_param.h: Document the new configuration parameter MR_REQUIRE_TRACING and the existing but undocumented parameter MR_STACK_TRACE. runtime/mercury_grade.h: Include MR_REQUIRE_TRACING in the mangled grade identifier. compiler/globals.m: compiler/handle_options.m: compiler/options.m: Allow new tracing type `--trace default', and make it the default. This gets replaced with `full' if require_tracing is yes or `minimal' if require_tracing is no. Also `--trace minimum' gets replaced with `interface' if require_tracing is yes. doc/user_guide.texi: Document the new `--debug', `--low-level-debug', and `--c-debug' options. scripts/mgnuc.in: compiler/mercury_compile.m: doc/user_guide.texi: Change things so that `--c-debug' does not imply `--no-c-optimize'. configure.in: Add `-fomit-frame-pointer' to CFLAGS_FOR_GOTOS on alpha-*. Empirically, this seems to be needed, otherwise lots of the test cases fail when compiled with `--no-c-optimize'. (It might also be needed for other architectures, I don't know.)
35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
#---------------------------------------------------------------------------#
|
|
# Copyright (C) 1997-1998 The University of Melbourne.
|
|
# This file may only be copied under the terms of the GNU General
|
|
# Public License - see the file COPYING in the Mercury distribution.
|
|
#---------------------------------------------------------------------------#
|
|
#
|
|
# init_grade_options.sh-subr:
|
|
# An `sh' subroutine for initializing grade-related options.
|
|
# Used by the `ml' and `mgnuc' scripts.
|
|
#
|
|
# The code here should be inserted before a script's option-parsing
|
|
# loop. The invoking script must define a DEFAULT_GRADE option.
|
|
#
|
|
#---------------------------------------------------------------------------#
|
|
|
|
asm_labels=true
|
|
non_local_gotos=true
|
|
global_regs=true
|
|
gc_method=conservative
|
|
profile_time=false
|
|
profile_calls=false
|
|
profile_memory=false
|
|
use_trail=false
|
|
args_method=compact
|
|
stack_trace=false
|
|
require_tracing=false
|
|
low_level_debug=false
|
|
|
|
case $# in
|
|
0) set - "--grade $DEFAULT_GRADE" ;;
|
|
0) set - "--grade $DEFAULT_GRADE" "$@" ;;
|
|
esac
|
|
|
|
#---------------------------------------------------------------------------#
|