Advanced RTOS, embedded real-time OS, compact OS, IDE, Software development toolkits, embedded c compilers, Multicore debugger, hardware probes, static source code analysis tool, secure hypervisor, virtual prototyping platform
The AdaMULTI™ Run-Time Error Checking
» Download AdaMULTI datasheet (PDF)

AdaMULTI's Run-Time Error Checking capabilities can provide useful information on a wide variety of run-time errors. AdaMULTI detects the errors when they first occur, rather than later when they manifest themselves through secondary effects.
 
The Ada 95 language has always had powerful Run-Time checks built into the language, but for C/C++, AdaMULTI can also insert special checks into the program to watch for and report a broad variety of run-time errors. By pinpointing the source line at which the error first occurs, error checking saves many hours of time hunting down very intricate problems. Error checking saves a lot of time finding simpler bugs as well, and that time adds up quickly over the course of a programming project. AdaMULTI can check for several errors including:
  • Allocation - Reading or writing unallocated memory.
  • Free - Freeing unallocated memory.
  • Memory Leak - Detecting dynamically allocated memory blocks not referenced by any program pointer.
  • Array Bounds - Accessing an element beyond the declared bounds of an array.
  • Assignment Bounds - Storing a value into a variable or bit field too small to hold it.
  • NULL Dereference - Using a null pointer to access memory.
  • Switch/Case Statement - Having a parameter to a switch/case statement which does not match any of the case labels.
  • Divide By Zero - Dividing by zero.
  • Watchpoint - Accessing a specified memory address.
  • Unused Variables - Having a local variable which is never used, or which is read before being initialized.
  • Return - Exiting from a non-void function without returning a value.
 
Processors Supported
Green Hills Software provides Ada 95, C, C++, EC++ and FORTRAN optimizing compilers, AdaMULTI Integrated Development Environment, and the tool chain for many processor architectures:
  32-/64-bit
Power Architecture
680x0/683xx
CPU32
x86/Pentium
MIPS
RAD6000
RH32
SPARC
 
 
  Supported Hosts
Green Hills supports development on PC and UNIX workstation hosts:
  Windows
SPARC/Solaris
Linux
Memory Leak Detection
When all pointers to a block of memory allocated with malloc() but not released with free() are discarded, then that memory can no longer be accessed or Each type of error check can be separately enabled. Most error checks can be enabled or disabled on a module by module basis, so that the check overhead is not incurred on time critical code. freed and is called a memory leak.
 
AdaMULTI's findleaks command identifies all pointers in the program and matches them against the addresses of all allocated memory blocks. Any memory block not pointed to by any pointer is reported as a leak. The report identifies the source line originally responsible for allocating the offending block; the malloc() on that line is missing a corresponding free(). Clicking on a line of the findleaks report will cause the associated source code to be displayed in the debugger source pane.


» Back to AdaMULTI



» RTOS 
» MULTI IDE
» AdaMULTI IDE
» Compilers
» Communications Software
» Custom Development