Debug mode lite plan

François Dumont frs.dumont@gmail.com
Fri Jul 31 19:56:00 GMT 2015


Hi

    I am going to work on debug mode lite and would like to share with
you what I plan to do.

    As announced debug mode lite will be a limited debug mode that is to
say:
- O(1) debug checks
- ABI compatible

    O(1) should be considered as limited performance impact. It is not
easy to forecast if a debug check will have an impact cause even if the
check has a O(1) complexity it can be called in a O(N) higher level algo
resulting in a noticeable impact. But you get the idea.

    ABI compatible means that when activated you will be able to build a
single translation and have it linked smoothly with the rest of the
application. I still plan to use inlined namespace in this mode. Debug
mode containers will simply be abi compatible with normal ones. So no
more safe iterator list maintained in the container in this mode. I even
hope that we will be able to use string debug implementation in this
mode so that we do not need to inject all sorts of debug checks in
normal implementation. That's the trickiest part of this plan, just tell
me if it simply can't work.

    Regarding the name of this mode I was thinking about _GLIBCXX_DBG,
which is a limited way to write _GBLIBCXX_DEBUG.

François



More information about the Libstdc++ mailing list