naive GDB programming style questions
Andrew Cagney
ac131313@ges.redhat.com
Mon Sep 9 18:45:00 GMT 2002
> 1) It seems to me that some parts of GDB's source use NULL while other
> parts use 0. Is one or the other of these generally preferred?
>
> 2) Am I correct in observing that GDB frowns on code like the
> following:
>
> char *p = calculate_p ();
>
> if (!p)
> p_is_zero ();
I'll assume that you ment ``p_is_null()''.
> preferring this instead?
>
> char *p = calculate_p ();
>
> if (p == NULL)
> p_is_zero ();
>
> Does it matter that p in a pointer rather than an integer, or that
> the code is testing for zeroness rather than nonzeroness?
If you've a copy of the ISO C and C++ manuals, have a look at what they
have to say about ``NULL'' pointers. It's weird.
Anyway, for GDB, ``p == NULL'' is recommended to make it clear that the
pointer is being tested and not the underlying value.
> 3) Is it possible to get CC Mode to indent in the way that GDB seems
> to prefer? I'm having a hard time getting structs to be indented
> as follows:
>
> struct foo
> {
> int mem;
> };
Just use:
struct foo
{
int mem;
};
which is what is output by gdb_indent.sh and emacs. The strange
indentation that you've encountered dates back to an earlier version of
indent.
Must get around to sending the FSF coding standards group a patch that
documents this (it was agreed to in principle some time ago).
> without screwing up my preferred indentation when doing non-GDB
> programming, namely
>
> struct foo {
> int mem;
> };
>
> Of course, I can write functions to toggle between the two; but
> given that both styles seem to be able to coexist for enums, maybe
> it's possible to get them to coexist for enums. (I'm certainly no
> CC Mode expert...)
Andrew
More information about the Gdb
mailing list