[ET Trac] [Einstein Toolkit] #515: Silently overrides DEBUG and OPTIMISE options
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Fri Aug 19 03:29:52 CDT 2011
#515: Silently overrides DEBUG and OPTIMISE options
----------------------------+-----------------------------------------------
Reporter: barry.wardell | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: SimFactory | Version:
Resolution: | Keywords:
----------------------------+-----------------------------------------------
Comment (by barry.wardell):
I think there is a bit of confusion about exactly what the problem is so
I'll clear it up. The problem is not with the presence of debug symbols.
As was mentioned, these are always included independent of debug and
optimise being enabled. The problem is that by default SimFactory enables
optimisation (-O2 on the machine I was using) so that many things are
optimised away, making debugging much more difficult.
The main thing I wanted to achieve was to disable optimisation (-O0). In
principal this should be achieved using --no-optimise. The problem is that
the current code ignores this option completely, making --optimise and
--no-optimise completely useless. This is what my second patch fixes (I
will commit this). However, even when this is fixed, the effect of --no-
optimise is to not enable optimisation. Note that this is not the same as
disabling optimisation as it relies on the compiler's default optimisation
level, which I think is typically -O2. So the patch is only part of the
solution and is essentially useless for solving my original problem.
The real solution to my original problem would be to run with --debug.
This explicitly disables optimisation, although as Erik mentioned this
enables lots of extra debug code too. In my case this wouldn't be a
problem - the bug is sufficiently difficult to track down that any extra
information at the cost of speed is helpful.
The conflict I was referring to between --debug and --optimise (and
DEBUG=yes and OPTIMISE=yes) is that debug explicitly disables optimisation
(-O0) while optimise explicitly enables it (-O2). I'm not sure what a
compiler does when it is given both of these, but I'm sure it can't be a
good idea. I think --debug does the correct thing in that it sets.
I discovered that there is some documentation for --debug. It's available
by running 'sim --help'. However, this documentation says "Build Cactus
with debug symbols", which is wrong.
The issues I mentioned so far can basically be considered to be bugs in
SimFactory. The remaining problem is that optionlists are '''silently'''
modified when building. Even worse, the fact that we set DEBUG and
OPTIMISE in the optionlists suggests that it is possible to change these
settings in the optionlist. This is what leads to confusing behaviour.
Someone who is used to Cactus optionlists has no reason to expect DEBUG to
have not been enabled and will be very confused by the result.
Note that I don't have any problem with these things being only controlled
by SimFactory's --debug, etc. In fact itt seems quite useful to me. The
problem is having apparently two ways to do it, one of which people are
used to and which doesn't work, without warning.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/515#comment:6>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list