Go to main content
Oracle® Developer Studio 12.5: Debugging a Program with dbx

Exit Print View

Updated: June 2016

Capabilities of Runtime Checking

Because runtime checking is an integral debugging feature, you can perform all debugging operations while using runtime checking except collecting performance data using the Collector.

Note -  You cannot use runtime checking on Java code.

    Runtime checking provides the following capabilities:

  • Detects memory access errors

  • Detects memory leaks

  • Collects data on memory use

  • Works with all languages

  • Works with multithreaded code

  • Requires no recompiling, relinking, or makefile changes

Compiling with the –g flag provides source line-number correlation in the runtime checking error messages. Runtime checking can also check programs compiled with the optimization –O flag. There are some special considerations with programs not compiled with the -g option.

You can use runtime checking by using the check command.

When to Use Runtime Checking

To avoid seeing a large number of errors at once, use runtime checking early in the development cycle, as you are developing the individual modules that make up your program. Write a unit test to drive each module and use runtime checking incrementally to check one module at a time. This method means you deal with a smaller number of errors at a time. When you integrate all of the modules into the full program, you are likely to encounter few new errors. When you reduce the number of errors to zero, you need to run runtime checking again only when you make changes to a module.

Runtime Checking Requirements

    To use runtime checking, you must fulfill the following requirements:

  • Dynamic linking with libc.

  • Use of the standard libc malloc, free, and realloc functions or allocators based on those functions. Runtime checking provides an application programming interface (API) to handle other allocators. See Runtime Checking Application Programming Interface.

  • Programs that are not fully stripped; programs stripped with strip -x are acceptable.

For information about the limitations of runtime checking, see Runtime Checking Limitations.