Robin's Blog

The best debugger is a good compiler

The title of this post is a quote from a programming course I’m taking at the moment that really made me think about things differently. In this course we’ve been doing fairly low-level programming in C, which is quite different from most of the programming I’ve been doing recently. One of my biggest lessons from the course was:

Get the compiler to catch the bugs before you even run the code then you don’t have to

In my assignments for this course there have been so many bugs that I’ve caught by setting the compiler to be a bit stricter. In fact, it’s amazing what compilers these days can do. The latest versions of compilers such as gcc will do an awful lot of what tools like lint do – checking things that might be a problem and letting you know about them. So – Rule 1 is to make sure you’re using a fairly up-to-date version of your compiler, as the ability of compilers to find problems in your code has got a lot better recently.

Rule 2 is to set your compiler to be stupidly picky and it will, honestly, make your life easier. For us gcc people that means rather than running:

gcc source.c

run:

gcc -Wall -pedantic source.c

It’s only a few more characters typing (no extra characters if you put it in your makefile) and can make your life a lot easier.


If you found this post useful, please consider buying me a coffee.
This post originally appeared on Robin's Blog.


Categorised as: C, Programming


One Comment

  1. anonymous says:

    You might also like -Werror which turns all warnings into errors. This may be annoying at first but it will force you to think twice before passing over or disabling a warning.

Leave a Reply

Your email address will not be published. Required fields are marked *