EASYCODE is extending its range of tools for efficient embedded software development with the Crystal C/C++ tool set from SVG SARC. Crystal C/C++ is available in the versions Crystal FLOW and Crystal REVS with a selectable range of functions. Dependent upon your requirements and environment, Crystal C/C++ can be a valuable enhancement or alternative for your existing IDE.
New: Crystal C/C++ Data Flow Edition
The modular nature of modern software projects with their innumerable function calls represents a not to be underestimated task in reviews. In most cases, quickly inserting a modification or extension without conscientiously counterchecking all the places where they are bring used rapidly leads to problems.
Crystal DataFlow provides two new chart types for effectively analyzing functions and call sequences. Data flowcharts are a form of presentation for data objects similar to a flowchart. They contain all the instructions in which an object is being used or modified, together with several control structures such as if-else decisions, loops and switches.
Adjacent is a simple example that also contains a documented branch (a1 / a2). A legend is outputted in the chart for this purpose. Further below you will see the trigger switch in the call graph.
As a special highlight, DataFlow reliably recognizes when an object has been handed over as an argument and is being used in the called function under another name.
Simply clicking a symbol in the chart displays the corresponding position in the source code. A detailed type definition is shown as a pop-up by clicking the symbol in the left half.
The chart can be either printed or exported as a graphic file. It can also be exported directly to Microsoft Visio.
Benefit: To reliably modify a function, search for all the references in the project and work your way line by line through the search results in the source code. With the data flowchart, all the information you need is available in a single chart, including the type of usage, control structure and code coverage.
Function call graphs perfectly visualize the call sequence of functions. They become particularly valuable where different call paths are used for pre-processor instructions or 'if' decisions.
The screenshot above shows the switch from the data flowchart with simple if-else decisions and function calls that can be extracted even further.
Severe fragmenting caused by large numbers of function calls is frequently encountered in projects, consuming a great deal of time and paper resources during analysis. Crystal DataFlow gives a precise overview of the function's relationships and dependencies right in the very first view. Each graph that contains a function call can be extracted further. Call graphs can be created for single functions or the entire project, whereby the first view at function level is extracted.
Benefit: With a call graph you have the perfect tool for performing a code review, debugging a software error, or simply familiarizing yourself as quickly as possible with the logic of a legacy program. The graph displays the calls directly in the control structure, assists with code coverage, and shows the type definition at the mouse pointer. You can finish any analysis in just half the time.
And last, but not least: The graphic presentation of the function calls enables design errors to be easily identified, a valuable aid in the ongoing development for writing better code.
Test Crystal DataFlow whenever a suitable need arises. You will be really impressed. We recommend testing Crystal REVS Professional Pro so you can become acquainted with all the possibilities available to you. And if it turns out you cannot use the one or other function, we'll quickly find the right solution for you.