Chapter 1. Introduction

Table of Contents

What is EDoc++
Motivation
Limitations

What is EDoc++

EDoc++ is a tool for C/C++ developers that automates many exception safety analysis checks and provides detailed documentation about exception propagation through the code.

Generally a developer will use EDoc++ on a number of C/C++ source files. For every function implementation encountered in those source files, EDoc++ will generate a list of exceptions that may be thrown as a result of calling that function. This list is a "more than complete" list of propagating exceptions.

After generating this list of possible exceptions, EDoc++ will then perform certain exception safety checks on the code, attempting to determine usages of exceptions which may cause the program to crash. This includes erroneous usages like:

  • Exceptions propagating through code compiled with -fno-exceptions

  • Exceptions propagating out functions not permitted by the functions throw() specifier

  • Exceptions propagating out the main() function

  • Exceptions propagating out of static initialisation code

There are numerous other erroneous situations that EDoc++ will detect in addition to those listed above. For a complete list see Output Notifications (Errors/Warnings)

In addition to determining erroneous usage of exceptions, EDoc++ will also generate documentation that can be imported into doxygen (http://www.stack.nl/~dimitri/doxygen/) in order to document exception information for each function. This can be used to accurately document exception propagation along with standard library API documentation which is invaluable for users of the library.