Purpose (problem description)

This guide gives the approach to troubleshoot missing or wrong / incorrect links between two C and CPP objects.

Links detected and saved by analyzer


C and Cpp - Analysis results

Observed in CAST AIP
Release
Yes/No
8.3.x(tick)
8.2.x(tick)
8.1.x(tick)
8.0.x (tick) 
7.3.x(tick)
Observed on RDBMS
RDBMS
Yes/No
Oracle Server(tick)
Microsoft SQL Server(tick)
CSS3(tick)
CSS2(tick)
Action Plan
  1. Check if the issue is about include links between C++ source files. 
    In C++ there is a directive ( "#pragma once") which informs the compiler that '.h' file must be included only one time in the C++ source code.
    For example, if C++ source file  (a.h) contains this directive and this file is included by two other source files (b.cpp and c.cpp), then the C++ analyzer will take into account only the first include directive that it encounter (eg in b.cpp).
    So a link will be created between the two files (a.h and b.cpp), and all other #include directives will be ignored and no more include link will be created to the file a.h (c.cpp ---> a.h).
    1. To investigate about this get the preprocessed file.
  2. Check if the issue is about links which are missing between procedure and table.
    Issue may be encountered if there is any bad character (some thing like [] which when opened in notepad++ will be seen as SUB )  in the procedure of any file, so in parser, it does not recognize this character and it stops parsing. So Proc is not analyzed.
    1. Get the PreprocessedFile.cpp, to check this.
    2. Open PreprocessedFile.cpp in notepad++ and search for the bad char SUB.
    3. Open the concerned file and remove the bad char from that file If there are any bad char.
    4. Reanalyze the job.
  3. If the above cases are not relevant, contact CAST Technical Support. with Relevant Input
Notes/comments

 

Related Pages