Skip to content

Control Flow Analysis Visualization: Result generated by CodeQL can not understand well by human #16920

@glorious064

Description

@glorious064

CFA(Control Flow Analysis)
I used the following simple QL statement:

/**
 * @name Control Flow Graph Visualization
 * @description This query identifies control flow nodes within a function and visualizes the control flow graph, helping to understand the flow of execution.
 * @kind graph
 * @id cpp/control-flow-graph-visualization
 * @problem.severity recommendation
 * @tags control-flow analysis
 * @precision high
 * @security-severity 0.0
 */

import cpp
import semmle.code.cpp.controlflow.internal.CFG

from Function f, ControlFlowNode start, ControlFlowNode end, Stmt s1, Stmt s2
where
  start.getControlFlowScope() = f and
  end.getControlFlowScope() = f and
  start.getASuccessor() = end and
  f.getFile().getBaseName() = "ip_output.c" and
  f.getName() = "__ip_append_data"
select
  start,
  end,
  "This is a control flow from " + start.getEnclosingStmt().toString() + " to " + end.getEnclosingStmt().toString() + " in function " + 

 f.getQualifiedName()

Although I output the control flow of a specific function in formats such as SARIF, DOT, and DGML, the results are not easily understandable by humans. I want to ask if CodeQL provides any other methods for visualizing control flow that can be easily understood by both humans and, if possible, LLMs (large language models).

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions