[htdocs,v3] bugs: Mention -D_GLIBCXX_ASSERTIONS and -D_GLIBCXX_DEBUG
Checks
Commit Message
These options both enabled more checking within the C++ standard library
and can expose errors in submitted code.
-D_GLIBCXX_DEBUG is mentioned separately because while we want people to try it,
it's not always feasible because it requires the whole program and any used
libraries to also be built with it (as it breaks ABI).
Signed-off-by: Sam James <sam@gentoo.org>
---
v3: Link to debug mode docs.
v2: Improve phrasing for the types of checks and be less scornful about ABI changes.
htdocs/bugs/index.html | 8 ++++++++
1 file changed, 8 insertions(+)
Comments
On Thu, 26 Oct 2023, Sam James wrote:
> These options both enabled more checking within the C++ standard library
> and can expose errors in submitted code.
This is a good addition, thank you! I was going to approve/push, but it's
probably better for Jonathan to give the final okay.
Just one question:
> +... If either of these fail, this is a strong indicator
> +of an error in your code.</p>
What does "fails" mean in this context? Are we looking at build failures?
Run-time failures?
Gerald
On Thu, 26 Oct 2023 at 23:40, Gerald Pfeifer <gerald@pfeifer.com> wrote:
>
> On Thu, 26 Oct 2023, Sam James wrote:
> > These options both enabled more checking within the C++ standard library
> > and can expose errors in submitted code.
>
> This is a good addition, thank you! I was going to approve/push, but it's
> probably better for Jonathan to give the final okay.
LGTM, I'll push it.
>
> Just one question:
>
> > +... If either of these fail, this is a strong indicator
> > +of an error in your code.</p>
>
> What does "fails" mean in this context? Are we looking at build failures?
> Run-time failures?
Run-time. Defining those macros should not cause build failures,
although if they do that's probably a bug in the user code too.
@@ -56,6 +56,14 @@ makes a difference, or if compiling with <code>-fsanitize=undefined</code>
produces any run-time errors, then your code is probably not correct.
</p>
+<p>We also ask that for C++ code, users test their programs with
+<code>-D_GLIBCXX_ASSERTIONS</code>. If you're able to rebuild the entire
+program (including any libraries it uses, because it changes ABI), please do try
+libstdc++'s <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html">debug mode</a>
+(<code>-D_GLIBCXX_DEBUG</code>) which enables more thorough checking in parts of
+the C++ standard library. If either of these fail, this is a strong indicator
+of an error in your code.</p>
+
<h2>Summarized bug reporting instructions</h2>
<p>After this summary, you'll find detailed instructions that explain