# Graphs

Here are commands to draw various graphs:

* [Display function flow-chart](#display-function-flow-chart)
* [Display function call graph](#display-function-call-graph)
* [Display chart of xrefs to addresses](#display-chart-of-xrefs-to-addresses)
* [Display chart of xrefs from addresses](#display-chart-of-xrefs-from-addresses)
* [Display user-defined chart of xrefs](#display-used-defined-chart-of-xrefs)

IDA uses an external program to display graphs. The program name is wingraph32.exe and it is located in the current directory.

The user can change the name of this program using the GRAPH\_VISUALIZER parameter in the [IDA.CFG](https://docs.hex-rays.com/8.5/user-guide/configuration/configuration-files) file.

The user can zoom the graph and move it around the window.

See also [View](https://docs.hex-rays.com/8.5/user-guide/user-interface/menu-bar/view) submenu.

### Display function flow-chart

```
Action    name: GraphFunc
 
```

This command displays the flow chart of the current function.

The colored edges of the flow chart represent the outcome of conditional jump instructions. Green means that the condition is satisfied, red means not satisfied.

### Display function call graph

```
Action    name: CallFlow
 
```

This command displays the graph of all function calls in the program.

The functions are represented as nodes. The calls are represented as edges between nodes. Instructions outside functions are ignored.

### Display chart of xrefs to addresses

```
Action    name: ChartXrefsTo
 
```

This command displays the graph of code and data xrefs to current address/range of selected addresses in the program.

The addresses are represented as nodes. The xrefs are represented as edges between nodes.

### Display chart of xrefs from addresses

```
Action    name: ChartXrefsFrom
 
```

This command displays the graph of code xrefs from the current address/range of selected addresses in the program.

In this direction, data xrefs aren't analyzed to avoid overloaded graphs.

The addresses are represented as nodes. The xrefs are represented as edges between nodes.

### Display used-defined chart of xrefs

```
Action    name: ChartXrefsUser
 
```

This command displays a user-defined graph of xrefs from/to the current address/range of selected addresses in the program.

The direction of the xrefs to analyze can be chosen. If the Recursive flag is checked, all found xrefs are themselves analyzed to find new xrefs. You can choose to search for xrefs to new referenced addresses only in the current direction. Only External, data xrefs, xrefs from library functions and to library functions can possibly be ignored.

A recursion depth can be specified. If 'Print recursion dots' is checked, and a function has others xrefs outside of the range defined by the 'recursion depth' setting, small nodes containing dots are printed.

The 'Print comments' flag causes the generated function node to also contain the function comment.

The addresses are represented as nodes. The xrefs are represented as edges between nodes. The used colors are the same as in IDA.
