[Vm-dev] '-DNDEBUG=0' and '-DDEBUGVM=1'

Mariano Martinez Peck marianopeck at gmail.com
Tue Apr 26 08:37:13 UTC 2011

On Tue, Apr 26, 2011 at 10:18 AM, Stefan Marr <squeak at stefan-marr.de> wrote:

> Hi Mariano:
> On 26 Apr 2011, at 09:53, Mariano Martinez Peck wrote:
> > If I am compiling with -DNDEBUG=1  I expect the asserts() to be
> evaluating.
> NDEBUG is a short form for NO debug, I suppose.
> Let me cite the manpage:
> >>
> If the macro NDEBUG was defined at the moment <assert.h> was last included,
> the macro assert() generates no code, and hence does nothing at all.
> <<
> Thus, -DNDEBUG=0 and -DNDEBUG=1, as well as -DNDEBUG=foo have all the same
> effect: NO DEBUG, no assertions.
Thanks Stefan. In fact, you were right. If I DO NOT define DNDEBUG,
assertions. If I define it (with whatever value), no assertions.   Now, I
think that I was to naive to understand Eliot's first answer:

NDEBUG is a Mac OS X/FreeBSD/Linux flag that controls asserts.  To get
asserts working in Cog it was easiest to use this flag.  So if NDEBUG=0
asserts are eliminated and if NDEBUG=1 they are included and cause a warning
to be printed to stdout when enabled (via a call to warning).  See
platforms/Cross/vm/sqAssert.h.  Hence NDEBUG=0 for production and NDEBUG=1
for debug and assert VMs.

So..I should have NOT understood them literal  "Hence NDEBUG=0 for
production and NDEBUG=1 for debug"  but  instead that for debug I DO NOT
have to define NDEBUG  but I do for production ?

And even more, when Igor said "and so it doesn't matters if it = 1 or = 0
because it is defined, but don't cares which value."  he was correct.

> >  And even more, asserta() seems to evaluates always.
> I don't know asserta(), I suppose it is `assert always`?
> The only thing I can tell you here is, that you probably need to refer to
> its implementation.

Thanks Stefan


> Best regards
> Stefan
> --
> Stefan Marr
> Software Languages Lab
> Vrije Universiteit Brussel
> Pleinlaan 2 / B-1050 Brussels / Belgium
> http://soft.vub.ac.be/~smarr
> Phone: +32 2 629 2974
> Fax:   +32 2 629 3525

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110426/b5cda722/attachment.htm

More information about the Vm-dev mailing list