Next: History, Previous: Installation, Up: General Introduction
For bugs unrelated to persistence, see the gawk documentation,
e.g., GAWK: Effective AWK Programming,
available at https://www.gnu.org/software/gawk/manual/.
If pm-gawk doesn’t behave as you expect, first consider whether you’re
using the heap file that you intend; using the wrong heap file is a
common mistake. Other fertile sources of bugs for newcomers are the
fact that a BEGIN block is executed every time pm-gawk runs,
which isn’t always what you really want, and the fact that built-in
AWK variables such as NR are always reset to zero every time
the interpreter runs. See the discussion of initialization
surrounding the min/max/mean script in Examples.
If you suspect a persistence-related bug in pm-gawk, you can set
an environment variable that will cause its persistent heap module,
pma, to emit more verbose error messages; for details see the
main gawk documentation.
Programmers: You can re-compile gawk with assertions enabled, which
will trigger extensive integrity checks within pma. Ensure
that pma.c is compiled without the -DNDEBUG flag
when make builds gawk. Run the resulting executable on small
inputs, because the integrity checks can be very slow. If assertions
fail, that likely indicates bugs somewhere in pm-gawk. Report such
bugs to me (Terence Kelly) and also following the procedures in the
main gawk documentation. Specify what version of gawk you’re
using, and try to provide a small and simple script that reliably
reproduces the bug.