IDAPython 9.0
Loading...
Searching...
No Matches
ida_gdl Namespace Reference

Detailed Description

Low level graph drawing operations.

Classes

class  BasicBlock
 
class  cancellable_graph_t
 
class  edge_t
 
class  edgevec_t
 
class  FlowChart
 
class  gdl_graph_t
 
class  node_iterator
 
class  node_ordering_t
 
class  qbasic_block_t
 
class  qflow_chart_t
 

Functions

None gen_gdl ('gdl_graph_t' g, str fname)
 
int display_gdl (str fname)
 
bool gen_flow_graph (str filename, str title, 'func_t *' pfn, ida_idaapi.ea_t ea1, ida_idaapi.ea_t ea2, int gflags)
 
bool gen_simple_call_chart (str filename, str wait, str title, int gflags)
 
bool gen_complex_call_chart (str filename, str wait, str title, ida_idaapi.ea_t ea1, ida_idaapi.ea_t ea2, int flags, int recursion_depth=-1)
 
bool is_noret_block ('fc_block_type_t' btype)
 
bool is_ret_block ('fc_block_type_t' btype)
 

Variables

 fcb_normal = _ida_gdl.fcb_normal
 
 fcb_indjump = _ida_gdl.fcb_indjump
 
 fcb_ret = _ida_gdl.fcb_ret
 
 fcb_cndret = _ida_gdl.fcb_cndret
 
 fcb_noret = _ida_gdl.fcb_noret
 
 fcb_enoret = _ida_gdl.fcb_enoret
 
 fcb_extern = _ida_gdl.fcb_extern
 
 fcb_error = _ida_gdl.fcb_error
 
 EDGE_NONE = _ida_gdl.EDGE_NONE
 
 EDGE_TREE = _ida_gdl.EDGE_TREE
 
 EDGE_FORWARD = _ida_gdl.EDGE_FORWARD
 
 EDGE_BACK = _ida_gdl.EDGE_BACK
 
 EDGE_CROSS = _ida_gdl.EDGE_CROSS
 
 EDGE_SUBGRAPH = _ida_gdl.EDGE_SUBGRAPH
 
 CHART_PRINT_NAMES = _ida_gdl.CHART_PRINT_NAMES
 
 CHART_GEN_DOT = _ida_gdl.CHART_GEN_DOT
 
 CHART_GEN_GDL = _ida_gdl.CHART_GEN_GDL
 
 CHART_WINGRAPH = _ida_gdl.CHART_WINGRAPH
 
 CHART_NOLIBFUNCS = _ida_gdl.CHART_NOLIBFUNCS
 
 CHART_REFERENCING = _ida_gdl.CHART_REFERENCING
 
 CHART_REFERENCED = _ida_gdl.CHART_REFERENCED
 
 CHART_RECURSIVE = _ida_gdl.CHART_RECURSIVE
 
 CHART_FOLLOW_DIRECTION = _ida_gdl.CHART_FOLLOW_DIRECTION
 
 CHART_IGNORE_XTRN = _ida_gdl.CHART_IGNORE_XTRN
 
 CHART_IGNORE_DATA_BSS = _ida_gdl.CHART_IGNORE_DATA_BSS
 
 CHART_IGNORE_LIB_TO = _ida_gdl.CHART_IGNORE_LIB_TO
 
 CHART_IGNORE_LIB_FROM = _ida_gdl.CHART_IGNORE_LIB_FROM
 
 CHART_PRINT_COMMENTS = _ida_gdl.CHART_PRINT_COMMENTS
 
 CHART_PRINT_DOTS = _ida_gdl.CHART_PRINT_DOTS
 
 FC_PRINT = _ida_gdl.FC_PRINT
 
 FC_NOEXT = _ida_gdl.FC_NOEXT
 
 FC_RESERVED = _ida_gdl.FC_RESERVED
 
 FC_APPND = _ida_gdl.FC_APPND
 
 FC_CHKBREAK = _ida_gdl.FC_CHKBREAK
 
 FC_CALL_ENDS = _ida_gdl.FC_CALL_ENDS
 
 FC_NOPREDS = _ida_gdl.FC_NOPREDS
 
 FC_OUTLINES = _ida_gdl.FC_OUTLINES
 
int FC_PREDS = 0
 

Function Documentation

◆ display_gdl()

int display_gdl ( str fname)
Display GDL file by calling wingraph32. The exact name of the grapher is taken from the configuration file and set up by setup_graph_subsystem(). The path should point to a temporary file: when wingraph32 succeeds showing the graph, the input file will be deleted. 
    
@returns error code from os, 0 if ok

◆ gen_complex_call_chart()

bool gen_complex_call_chart ( str filename,
str wait,
str title,
ida_idaapi.ea_t ea1,
ida_idaapi.ea_t ea2,
int flags,
int recursion_depth = -1 )
Build and display a complex xref graph. 
    
@param filename: output file name. the file extension is not used. maybe nullptr.
@param wait: message to display during graph building
@param title: graph title
@param ea1: address range
@param ea2: address range
@param flags: combination of Call chart building flags and Flow graph building flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the function will return false.
@param recursion_depth: optional limit of recursion
@returns success. if fails, a warning message is displayed on the screen

◆ gen_flow_graph()

bool gen_flow_graph ( str filename,
str title,
'func_t *' pfn,
ida_idaapi.ea_t ea1,
ida_idaapi.ea_t ea2,
int gflags )
Build and display a flow graph. 
    
@param filename: output file name. the file extension is not used. maybe nullptr.
@param title: graph title
@param pfn: function to graph
@param ea1: if pfn == nullptr, then the address range
@param ea2: if pfn == nullptr, then the address range
@param gflags: combination of Flow graph building flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the function will return false
@returns success. if fails, a warning message is displayed on the screen

◆ gen_gdl()

None gen_gdl ( 'gdl_graph_t' g,
str fname )
Create GDL file for graph.

◆ gen_simple_call_chart()

bool gen_simple_call_chart ( str filename,
str wait,
str title,
int gflags )
Build and display a simple function call graph. 
    
@param filename: output file name. the file extension is not used. maybe nullptr.
@param wait: message to display during graph building
@param title: graph title
@param gflags: combination of CHART_NOLIBFUNCS and Flow graph building flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the function will return false.
@returns success. if fails, a warning message is displayed on the screen

◆ is_noret_block()

bool is_noret_block ( 'fc_block_type_t' btype)
Does this block never return?

◆ is_ret_block()

bool is_ret_block ( 'fc_block_type_t' btype)
Does this block return?

Variable Documentation

◆ CHART_FOLLOW_DIRECTION

CHART_FOLLOW_DIRECTION = _ida_gdl.CHART_FOLLOW_DIRECTION

◆ CHART_GEN_DOT

CHART_GEN_DOT = _ida_gdl.CHART_GEN_DOT

◆ CHART_GEN_GDL

CHART_GEN_GDL = _ida_gdl.CHART_GEN_GDL

◆ CHART_IGNORE_DATA_BSS

CHART_IGNORE_DATA_BSS = _ida_gdl.CHART_IGNORE_DATA_BSS

◆ CHART_IGNORE_LIB_FROM

CHART_IGNORE_LIB_FROM = _ida_gdl.CHART_IGNORE_LIB_FROM

◆ CHART_IGNORE_LIB_TO

CHART_IGNORE_LIB_TO = _ida_gdl.CHART_IGNORE_LIB_TO

◆ CHART_IGNORE_XTRN

CHART_IGNORE_XTRN = _ida_gdl.CHART_IGNORE_XTRN

◆ CHART_NOLIBFUNCS

CHART_NOLIBFUNCS = _ida_gdl.CHART_NOLIBFUNCS

◆ CHART_PRINT_COMMENTS

CHART_PRINT_COMMENTS = _ida_gdl.CHART_PRINT_COMMENTS

◆ CHART_PRINT_DOTS

CHART_PRINT_DOTS = _ida_gdl.CHART_PRINT_DOTS

◆ CHART_PRINT_NAMES

CHART_PRINT_NAMES = _ida_gdl.CHART_PRINT_NAMES

◆ CHART_RECURSIVE

CHART_RECURSIVE = _ida_gdl.CHART_RECURSIVE

◆ CHART_REFERENCED

CHART_REFERENCED = _ida_gdl.CHART_REFERENCED

◆ CHART_REFERENCING

CHART_REFERENCING = _ida_gdl.CHART_REFERENCING

◆ CHART_WINGRAPH

CHART_WINGRAPH = _ida_gdl.CHART_WINGRAPH

◆ EDGE_BACK

EDGE_BACK = _ida_gdl.EDGE_BACK

◆ EDGE_CROSS

EDGE_CROSS = _ida_gdl.EDGE_CROSS

◆ EDGE_FORWARD

EDGE_FORWARD = _ida_gdl.EDGE_FORWARD

◆ EDGE_NONE

EDGE_NONE = _ida_gdl.EDGE_NONE

◆ EDGE_SUBGRAPH

EDGE_SUBGRAPH = _ida_gdl.EDGE_SUBGRAPH

◆ EDGE_TREE

EDGE_TREE = _ida_gdl.EDGE_TREE

◆ FC_APPND

FC_APPND = _ida_gdl.FC_APPND

◆ FC_CALL_ENDS

FC_CALL_ENDS = _ida_gdl.FC_CALL_ENDS

◆ FC_CHKBREAK

FC_CHKBREAK = _ida_gdl.FC_CHKBREAK

◆ FC_NOEXT

FC_NOEXT = _ida_gdl.FC_NOEXT

◆ FC_NOPREDS

FC_NOPREDS = _ida_gdl.FC_NOPREDS

◆ FC_OUTLINES

FC_OUTLINES = _ida_gdl.FC_OUTLINES

◆ FC_PREDS

int FC_PREDS = 0

◆ FC_PRINT

FC_PRINT = _ida_gdl.FC_PRINT

◆ FC_RESERVED

FC_RESERVED = _ida_gdl.FC_RESERVED

◆ fcb_cndret

fcb_cndret = _ida_gdl.fcb_cndret

◆ fcb_enoret

fcb_enoret = _ida_gdl.fcb_enoret

◆ fcb_error

fcb_error = _ida_gdl.fcb_error

◆ fcb_extern

fcb_extern = _ida_gdl.fcb_extern

◆ fcb_indjump

fcb_indjump = _ida_gdl.fcb_indjump

◆ fcb_noret

fcb_noret = _ida_gdl.fcb_noret

◆ fcb_normal

fcb_normal = _ida_gdl.fcb_normal

◆ fcb_ret

fcb_ret = _ida_gdl.fcb_ret