Hi everyone,
I've recently had quite a few pain points while debugging due to the use of
anonymous namespaces throughout the code. Specifically, GDB does an
absolutely *terrible* job when a type is in an anonymous namespace (e.g. I
can't cast an ExecNode to its type). It's also difficult to set breakpoints
inside of functions within anonymous namespaces (it's feasible but a pain
to type out).

I understand that we use anonymous namespaces to limit the number of
symbols exposed by the binary, but this isn't relevant in debug builds.
Does anyone have opinions about potentially gating our anonymous namespaces
behind a `#ifndef NDEBUG` check? This way we can still disable exporting
all of those symbols in release builds but make life much easier when
debugging.

Thanks,
Sasha Krassovsky

Reply via email to