Source-code-analysis tool detects Ada errors
Adacore has released Codepeer, a source-code-analysis tool that detects run-time and logic errors in Ada programs.
Codepeer identifies constructs that are likely to lead to run-time errors, such as buffer overflows, and flags legal but suspect code typical of logic errors.
The tool also produces a detailed analysis of each subprogram, including pre- and postconditions.
If the implicit specification deduced by Codepeer does not match the component's requirements, a reviewer is alerted immediately to a likely logic error.
The tool can be used during system development to prevent errors from being introduced, or as part of a systematic code-review process, and retrospectively on existing code to detect and remove latent bugs.
Codepeer can be used as a standalone tool or fully integrated into the GNAT Pro Ada development environment.
It is highly flexible, with performance that can be tuned based on the memory and speed available on the developer's machine, and can efficiently exploit multi-core CPUs.
It can be run on partially complete programs and does not require stubs or drivers.
Codepeer analyses programs for a range of flaws, including use of uninitialised data, pointer misuse, buffer overflow, numeric overflow, division by zero, dead code and concurrency faults.
It identifies errors statically, without running the program, and determines where the failure could occur and where the bad values originate.
The tool also looks for code that is performing a suspect computation, such as an assignment to a variable that is never subsequently referenced, or a conditional test that always evaluates to the same true or false value.
Internally, Codepeer uses static control-flow, data-flow and value-propagation techniques to identify possible errors.
It mathematically analyses every line of code without executing the program, considering all combinations of program input across all paths within the program.
It automatically generates human-readable and machine-readable component specifications in the form of preconditions, postconditions, inputs, outputs and heap allocations, which - along with the error messages - can be displayed graphically or as in-line comments in the source-code listing.
In a multi-threaded system, Codepeer identifies where race conditions might occur.
To increase performance and usability it internally maintains a historical error database, which allows it to highlight the new coding problems and track trends across multiple analyses.
Not what you're looking for? Search the site.
Browse by category
- Active Components (11,628)
- Active Components (4)
- Analogue and Mixed-Signal ICs (1,737)
- Communications ICs (Wired) (1,803)
- Communications ICs (Wireless) (1,601)
- Discrete Power Devices (432)
- Memory Devices and Modules (772)
- Microprocessors, Microcontrollers and DSPs (2,083)
- Power-Supply ICs and Controllers (2,446)
- Programmable Logic Devices (608)
- Standard Logic Devices (142)
- Design and Development (9,672)
- Design and Development (1)
- Design and Development Hardware (1,056)
- Design and Development Software (4,687)
- Design Services (313)
- Embedded Software and Operating Systems (1,688)
- Intellectual Property Cores (1,566)
- Reference Designs (361)
- Electronics Manufacturing, Packaging (3,251)
- Enclosures and Panel Products (3,513)
- Enclosures and Panel Products (2)
- Fans and Blowers (230)
- Floor-Standing Racks, Cabinets, Enclosures (255)
- Gaskets, Seals and Screens (127)
- Handheld and Other Small Enclosures (143)
- Heatsinks and Thermal Management (206)
- Indicators and Audio (81)
- Instrument Cases, Benchtop, Wall-Mounting Enclosures (351)
- LCD Modules (497)
- Monitors (136)
- Other OEM Display Modules, Meters (241)
- Printers, Knobs, Bezels, Other Panelware (158)
- Rotary Controls, Joysticks etc (139)
- Switches and Keyboards (624)
- Touchscreens and Touch Sensors (316)
- Industry News (1,980)
- Interconnection (3,205)
- Antennas and Feeders (321)
- Boards and Backplanes (159)
- Cables and Wires (486)
- Interconnection (12)
- PCB Connectors (613)
- Plugs and Sockets (1,270)
- Terminals and Power (289)
- Optoelectronics (1,780)
- Passive Components (3,250)
- Capacitors (705)
- Circuit Protection Devices (516)
- Electromechanical Components (581)
- EMC Components (416)
- Frequency Control Components (450)
- Passive Components (1)
- Resistors (318)
- Transformers and Inductors (263)
- Power Supplies (2,604)
- AC/DC Power Supplies (1,087)
- Batteries and Chargers (257)
- DC/AC Inverters (80)
- DC/DC Convertors (946)
- OEM Power Supplies (0)
- Power Supplies (8)
- UPSs (226)
- Subassemblies (5,072)
- CompactPCI Boards, Assemblies (381)
- Embedded Computing and Control (1,396)
- Networking Hardware (972)
- PC-Compatible Boards, Assemblies (806)
- Subassemblies (1)
- VMEbus Boards, Assemblies (426)
- Wireless Communications (1,090)
- Test and Measurement (5,317)
- ATE Systems (393)
- Board-Level Instruments (559)
- Compliance Engineering (911)
- Sensors and Data Acquisition (944)
- Stand-Alone Instruments (2,050)
- Test Accessories (439)
- Test and Measurement (6)