- Using the Prolog IDE
The PDT creates internally a precise and very complete call graph that includes
Undeclared meta-predicates are inferred by our meta-predicate analysis, which can detect also calls that are dynamically assembled via =../2, functor/3, arg/3, atom_concat/3, etc. This significantly improves the completeness of the call graph and the reliability of the dead code analysis based on it.
The call graph is visualized in two different views:
Both views share the same interaction schema, default styles and preferences:
For big projects you might need to wait a few seconds at the start of the system while the PDT's global detection of undeclared meta-predicates is run. (When you later update and save your files, the meta-predicate analysis is re-run. In most cases you won't notice these repeated runs, since they are incremental.)
The initial, global meta-call analysis includes the entire PDT and SWI-libraries, so that you can see and browse from the call graph anything that is relevant to your program (as long as it is Prolog source code). If you do not need this and would rather prefer a quicker start, tell us.