Skip to main content

Writing Bug Free C Code

https://www.duckware.com/bugfreec/index.html


Writing Bug-Free C Code
A Programming Style That Automatically Detects Bugs in C Code
by Jerry Jongerius / January 1995


Note to this online book: On April 29, 2002, I reacquired the publishing
rights to my book (from Prentice Hall), and have decided to publish it
online, where it is now freely available for anyone to read (and print -
provided that the printed copy is only for your personal use). I have
personally moved on to the Java programming language, and now to HTML5.
This book is showing its age, but for anyone who still programs in C,
the techniques described in this book -- especially the class
methodology in Chapter 4 -- are still a 'little gem' worth knowing
about. Enjoy! jerryj@duckware.com

0. Preface
1. Understand Why Bugs Exist
2. Know Your Environment
3. Rock-Solid Base
4. The Class Methodology
5. A New Heap Manager
6. Designing Modules
7. General Tips
8. Style Guide
9. Conclusion
A. Appendix: Code Listings
References
C Programming with:

Class Methodology §4
Data hiding §4.2
Runtime type checking §4.4
Compile time type checking §4.3
Fault tolerant asserts §3.3
Fault tolerant functions §4.6
Compile-time asserts §2.1.4
Symbolic heap walking §5.2.9
Heap leak detection §5.5


Book C Source Code (9k): source.zip (for DOS, Windows, UNIX, etc)

Sections of this book that talk about Microsoft or Windows are
generally marked with the 'Windows' graphic. You can safely skip those
sections of this book if you want to.

Copyright © 1993-1995, 2002-2015 Jerry Jongerius, jerryj@duckware.com
This book was previously published by Person Education, Inc.,
formerly known as Prentice Hall. ISBN: 0-13-183898-9
Check Amazon for used paperback availability

Comments

Popular posts from this blog

The Difference Between LEGO MINDSTORMS EV3 Home Edition (#31313) and LEGO MINDSTORMS Education EV3 (#45544)

http://robotsquare.com/2013/11/25/difference-between-ev3-home-edition-and-education-ev3/ This article covers the difference between the LEGO MINDSTORMS EV3 Home Edition and LEGO MINDSTORMS Education EV3 products. Other articles in the ‘difference between’ series: * The difference and compatibility between EV3 and NXT ( link ) * The difference between NXT Home Edition and NXT Education products ( link ) One robotics platform, two targets The LEGO MINDSTORMS EV3 robotics platform has been developed for two different target audiences. We have home users (children and hobbyists) and educational users (students and teachers). LEGO has designed a base set for each group, as well as several add on sets. There isn’t a clear line between home users and educational users, though. It’s fine to use the Education set at home, and it’s fine to use the Home Edition set at school. This article aims to clarify the differences between the two product lines so you can decide which

Let’s ban PowerPoint in lectures – it makes students more stupid and professors more boring

https://theconversation.com/lets-ban-powerpoint-in-lectures-it-makes-students-more-stupid-and-professors-more-boring-36183 Reading bullet points off a screen doesn't teach anyone anything. Author Bent Meier Sørensen Professor in Philosophy and Business at Copenhagen Business School Disclosure Statement Bent Meier Sørensen does not work for, consult to, own shares in or receive funding from any company or organisation that would benefit from this article, and has no relevant affiliations. The Conversation is funded by CSIRO, Melbourne, Monash, RMIT, UTS, UWA, ACU, ANU, ASB, Baker IDI, Canberra, CDU, Curtin, Deakin, ECU, Flinders, Griffith, the Harry Perkins Institute, JCU, La Trobe, Massey, Murdoch, Newcastle, UQ, QUT, SAHMRI, Swinburne, Sydney, UNDA, UNE, UniSA, UNSW, USC, USQ, UTAS, UWS, VU and Wollongong.

Logic Analyzer with STM32 Boards

https://sysprogs.com/w/how-we-turned-8-popular-stm32-boards-into-powerful-logic-analyzers/ How We Turned 8 Popular STM32 Boards into Powerful Logic Analyzers March 23, 2017 Ivan Shcherbakov The idea of making a “soft logic analyzer” that will run on top of popular prototyping boards has been crossing my mind since we first got acquainted with the STM32 Discovery and Nucleo boards. The STM32 GPIO is blazingly fast and the built-in DMA controller looks powerful enough to handle high bandwidths. So having that in mind, we spent several months perfecting both software and firmware side and here is what we got in the end. Capturing the signals The main challenge when using a microcontroller like STM32 as a core of a logic analyzer is dealing with sampling irregularities. Unlike FPGA-based analyzers, the microcontroller has to share the same resources to load instructions from memory, read/write the program state and capture the external inputs from the G