[gambit-list] Gambit debugging compile modes, hopefully final thread :))

Adam adam.mlmb at gmail.com
Tue Jul 25 05:57:05 EDT 2017


Hi Marc!

The following topic has been important since a long time. I think there are
like 10 bumps in the mailing list on this one for many years.

Maybe it was bumped so many times on the ML that if you answered at some
point I might even have missed that response. Now to get to the bottom with
this:

Your complete response on this one would be very valuable.


Gambit debugging can regard both interpreted and compiled modes. There's
intra-Gambit debugging (singlestepping, ,bt , pp etc.), and there's
extra-Gambit debugging (GDB bt , core files, etc.).

Let's categorize the more subtle debugging options such as the "console"
file output and any debug output in the memory subsystem etc. as
extra-Gambit here too.


Gambit's intra-Gambit debugging of interpreted code is always enabled in
the default distro.

The remainder of debugging functionality is off by default, and enabled by
the --enable-debug option to ./configure .


--enable-debug unfortunately is a double edged sword, it will give you some
nice debugging stuff - and it will crash your whole operating system given
the "right" parameters, which are very easy to run into without in any way
having aimed at them intentionally.


The things I am aware that --enable-debug does are:

1. It enables C-level debugging symbols, i.e. adds "-g" or the like to
gcc/the C compiler.

2. It enables debugging information for compiled code, within the Gambit
environment, so that |pp|, |bt| etc. will show code instead of nothing/just
#<procedure 123>.

3. It enables debugging information for compiled code, on the level of the
C code, so that GDB/the C-level debugger, will show Scheme code too (right?)

4. It enables the production of the

5. Some more stuff maybe?


The disaster happens in 4. : your "console" file will fill the disk which
causes system havoc, and "rm console" will not fix the problem as the OS
will unlink the file at first when you close Gambit, duh!

However, to the best of my awareness, there is no way to enable/disable the
debugging options with any granularity at all. The only convenient option
below the disastrous "--enable-debug", is "CC_FLAGS="-g" ./configure",
which enables too few options and hence is unsatisfactory.


This overall gives me the impression that the debugging options have not
been tailored to match the needs for users (i.e. for helping users debug
their code) but for Gambit development (for helping resolve internal Gambit
bugs and aid Gambit system development).


What I would like here is simply to be able to enable/disable these five
individually.

In normal cases, I want 1-3 to be enabled, and all else disabled.

I consider 4-5 to be for debugging of the Gambit system itself, only.


Probably normally, I'd actually make 1 going via CC_FLAGS as I want to
choose the C compiler's -O option myself, and then use the specific
./configure arguments for enabling 2 and 3 only - and hence implicitly keep
the feared 4 (and any 5 that I wouldn't want anyhow), disabled.


Would you be able to implement this this year?

Any comments from other users would also be much appreciated.

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20170725/ee807147/attachment.htm>


More information about the Gambit-list mailing list