Date of Award


Degree Name

Master of Science


Computer Science

First Advisor

Carver, Norman


The C programming language offers a high degree of control and freedom to programmers. This makes it a powerful tool, but it also gives the language a steep learning curve. One difficulty that many new C programmers face is in figuring out how to analyze and debug their code, as well as the output. There exists a variety of tools that can be used to assist in debugging. They can offer aid by identifying certain types of errors and by providing meaningful output that helps the user understand and correct those errors. The following seven debugging tools have been tested and analyzed in order to ascertain when and how each one of them might be most useful: Valgrind, GCC Address Sanitizer, Clang Address Sanitizer, Mtrace, Memwatch, Electric Fence, and Dmalloc. They have been tested using anonymous code submitted by actual students for C programming labs in order to see how many errors, and of which sort, each tool catches. The results of these tests, as well as their implications, are presented here.




This thesis is only available for download to the SIUC community. Current SIUC affiliates may also access this paper off campus by searching Dissertations & Theses @ Southern Illinois University Carbondale from ProQuest. Others should contact the interlibrary loan department of your local library or contact ProQuest's Dissertation Express service.