Rechercher une page de manuel
hat-delta
Langue: en
Version: 259603 (debian - 07/07/09)
Section: 1 (Commandes utilisateur)
NAME
hat-delta - find a bug by algorithmic debugging, with delta debugging optimisations.SYNOPSIS
hat-delta [-chv] [-d depth] [-f heuristicFunction] [-s sliceDepth] prog[.hat]DESCRIPTION
hat-delta is an interactive tool for finding bugs in the trace of a Haskell program prog supplied as its argument. The user must answer a sequence of yes/no questions. Each question asked by hat-delta concerns the reduction of a function application to a value. You answer yes if the reduction is correct with respect to your intentions, and no otherwise. After a number of questions hat-delta reports an example equation which is the cause of the observed faulty behaviour - that is, which function definition is incorrect.OPTIONS
- -c
- Disable compression of the EDT based on reporting the same answer for several questions.
- -d depth
- Set the maximum depth hat-delta will consider making a jump into the EDT.
- -f function
- Set the heuristic function that hat-delta should use. Heuristic functions are input in the form of a Haskell data structure as discussed in the Heuristic functions section.
- -h
- Display help message and exit.
- -s sliceDepth
- Set the number of child connections hat-delta will follow when generating a program slice.
- -v
- Print hat-delta's version number, and exit.
INTERACTIVE COMMANDS
The hat-delta browser asks you questions, so the basic mode of interaction is to type answers:
- yes
- Yes, the equation looks correct by my understanding of the meaning of the function.
- no
- No, the equation looks incorrect. Given the displayed arguments, the function is returning the wrong result.
The following other commands are available. They each begin with a colon.
- :show
- Show the EDTs hat-detect is currently searching for bugs
- :quit
- Exit the interactive tool.
- :help
- Shows help text giving an overview of the commands available.
- :source
- Shows (in a separate window) the source code for the reduction currently being queried.
- :anim
- Start the hat-anim browser in a new window, beginning with the currently queried rediction.
- :delta
- or :split Start the hat-delta browser in a new window, beginning with the currently queried reduction.
- :detect
- Start the hat-detect browser in a new window, beginning with the currently queried reduction.
- :explore
- Start the hat-explore browser in a new window, beginning with the currently queried reduction.
- :trail
- Start a hat-trail browser in a new window, beginning with the currently queried reduction.
- :set
- Set an option in the form `:set option value`. Options are:
depthLimit Set the maximum depth hat-delta will consider making a jump into the EDT. Must be greater than 0.
sliceDepth Set the number of child connections hat-delta will follow when generating a program slice. Must be positive. A depth of 0 indicates that the whole function definition should be used as a slice.
heuristic Set the heuristic function, as described in the Heuristic functions section.
HEURISTIC FUNCTIONS
Heuristic functions calculate an estimate of how likely a particular program slice is to be the buggy one. They may be specified by the user in the form of a Haskell data structure using the following constructors.
- ZeroHeuristic
- Constant 0.0
- OneHeuristic
- Constant 1.0
- Correct
- The number of correct evaluations of the slice.
- Incorrect
- The number of incorrect evaluations of the slice.
- Add f1 f2
- Add the values of f1 and f2.
- Negate f
- Negate the value of f.
- Multiply f1 f2
- Multiply the values of f1 and f2.
- Invert f
- Invert the value of f.
If no heuristic is specified, the system will use Negate (Multiply Correct (Invert (Add Correct Incorrect))).
FILES
- /usr/bin/hat-delta
SEE ALSO
hmake(1), hat-trans(1), hat-detect(1), hat-stack(1), hat-observe(1), hat-trail(1)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre