mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-05-01 17:24:34 +00:00
Estimated hours taken: 40 Branches: main Add mdb `dice' command which reads in a set of passing trace counts and a failing trace count and prints a comparison table. The table can be sorted by various metrics and is useful for finding parts of a program executed in a failing run, but not in passing runs. browser/dice.m Add a new module for generating and manipulating a dice. browser/mdb.m Add the dice module. compiler/special_pred.m mdbcomp/prim_data.m Move special_pred_name_arity/3 from compiler/special_pred.m to mdbcomp/prim_data.m so it can be used in dice.m. doc/user_guide.texi Document the `dice' mdb command. Also document the fact that the failing and passing slice file names can be set with the `set' mdb command. Move the `set' command to the misc section from the browser section since it now also sets the passing and failing slice file names, which have nothing to do with the browser. library/list.m Add map4, map5 and map6 since map6 is needed in dice.m. mdbcomp/program_representation.m Add a predicate to convert a goal path to a string. mdbcomp/trace_counts.m Convert string_to_trace_port into a predicate and add a new mode so that a port can be converted back to a string. runtime/mercury_trace_base.h trace/mercury_trace_util.h Move the MR_TRACE_USE_HP and MR_TRACE_CALL_MERCURY macros to runtime/mercury_trace_base.h, so that they can be called from browser/dice.m. tests/Mmake.common Clean up trace counts (which are generated to test the `dice' command). tests/debugger/Mmakefile tests/debugger/dice.exp tests/debugger/dice.exp2 tests/debugger/dice.inp tests/debugger/dice.m tests/debugger/dice.passes Test the `dice' command. trace/mercury_trace_internal.c Add the mdb `dice' command and modify the `set' command so the `fail_trace_count' and `pass_trace_counts' parameters can be set. Add a function to print a dice. Move the `set' command to the misc help section.
98 lines
3.9 KiB
Plaintext
98 lines
3.9 KiB
Plaintext
1: 1 1 CALL pred completion.main/2-0 (det) completion.m:13
|
|
mdb> echo on
|
|
Command echo enabled.
|
|
mdb> register --quiet
|
|
mdb>
|
|
? exception quit
|
|
P excp r
|
|
alias f register
|
|
all_class_decls finish retry
|
|
all_procedures flag return
|
|
all_regs forward s
|
|
all_type_ctors g save
|
|
b gen_stack save_to_file
|
|
break goal_paths scope
|
|
break_print goto scroll
|
|
browse h set
|
|
c help source
|
|
cc_query histogram_all stack
|
|
class_decl histogram_exp stack_default_limit
|
|
clear_histogram ignore stack_regs
|
|
condition io_query step
|
|
consumer label_stats subgoal
|
|
context level table
|
|
continue maxdepth table_io
|
|
current mindepth term_size
|
|
cut_stack mm_stacks trust
|
|
d mmc_options trusted
|
|
dd modules type_ctor
|
|
dd_dd next unalias
|
|
debug_vars nondet_stack unhide_events
|
|
delete p untrust
|
|
disable pneg_stack up
|
|
document print v
|
|
document_category print_optionals var_details
|
|
down printlevel var_name_stats
|
|
e proc_stats vars
|
|
echo procedures view
|
|
enable query
|
|
h help histogram_all histogram_exp
|
|
var_details var_name_stats vars view
|
|
var_details var_name_stats vars
|
|
help vars
|
|
vars
|
|
Prints the names of all the known variables in the current
|
|
environment, together with an ordinal number for each variable.
|
|
mdb>
|
|
* --pretty -f -v goal
|
|
--flat --verbose -p exception
|
|
p --flat D
|
|
mdb: there is no such variable.
|
|
mdb>
|
|
stack stack_default_limit stack_regs
|
|
stack --detailed
|
|
0 1 1 1 pred completion.main/2-0 (det) (completion.m:13) (empty)
|
|
mdb>
|
|
proc_stats procedures
|
|
completion completion.sub2
|
|
completion.sub1 completion.sub2.sub3
|
|
completion.sub1 completion.sub2 completion.sub2.sub3
|
|
procedures completion.sub1
|
|
List of procedures in module `completion.sub1'
|
|
pred completion.sub1.zp/1-0 (det)
|
|
func completion.sub1.z1/0-0 (det)
|
|
mdb> set --flat format pretty
|
|
mdb> unalias excp
|
|
Alias `excp' removed.
|
|
mdb> b zabc3
|
|
0: + stop interface func completion.sub2.sub3.zabc3/0-0 (det)
|
|
mdb>
|
|
func*completion. func*completion.sub2.
|
|
func*completion.sub1. func*completion.sub2.sub3.
|
|
func*completion.z func*completion.zz
|
|
b func*completion.z
|
|
1: + stop interface func completion.z/0-0 (det)
|
|
mdb>
|
|
completion. completion.sub2.
|
|
completion.sub1. completion.sub2.sub3.
|
|
completion.sub1. completion.sub2. completion.sub2.sub3.
|
|
completion.sub1.z1 completion.sub1.zp
|
|
b completion.sub1.z1
|
|
2: + stop interface func completion.sub1.z1/0-0 (det)
|
|
mdb>
|
|
completion. completion.sub2.
|
|
completion.sub1. completion.sub2.sub3.
|
|
completion.sub1. completion.sub2. completion.sub2.sub3.
|
|
completion.sub2. completion.sub2.sub3.
|
|
b completion.sub2.sub3.zabc3
|
|
3: + stop interface func completion.sub2.sub3.zabc3/0-0 (det)
|
|
mdb>
|
|
2d 2debug_vars 2document
|
|
2dd 2delete 2document_category
|
|
2dd_dd 2disable 2down
|
|
2debug_vars 2delete
|
|
2delete
|
|
2: E stop interface func completion.sub1.z1/0-0 (det)
|
|
mdb> c
|
|
ok
|