GDB and debugging techniques

Kevin Buettner kev@primenet.com
Sat, 10 Feb 2001 13:00:36 -0700


On Feb 9,  9:57pm, Alan Dayley wrote:

> It is one of my cardinal rules: Always 
> step through new code at least the first time you run it.  I can save loads 
> of time, especially on the dumb errors like:
> 
> if (foo = 0)
> {
> ...
> }

The -Wall option to gcc (or -Wparentheses if you don't want the rest of
the -Wall options) will warn you about this kind of construct.  E.g...

  saguaro:ctests$ gcc -c dumb.c 
  saguaro:ctests$ gcc -Wall -c dumb.c 
  dumb.c: In function `f':
  dumb.c:6: warning: suggest parentheses around assignment used as truth value

Here's dumb.c:

  extern void g(void);

  void
  f (int foo)
  {
    if (foo = 0)
      g ();
  }

Generally, it's a good idea to make your code compile cleanly with
-Wall.  The compiler will find all sorts of problems with your code
if you let it.

Kevin