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

Detailed Description

Low level graph drawing operations.

Classes

class  BasicBlock
 Basic block class. More...
 
class  cancellable_graph_t
 Proxy of C++ cancellable_graph_t class. More...
 
class  FlowChart
 Flowchart class used to determine basic blocks. More...
 
class  gdl_graph_t
 Proxy of C++ gdl_graph_t class. More...
 
class  node_iterator
 Proxy of C++ node_iterator class. More...
 
class  qbasic_block_t
 Proxy of C++ qbasic_block_t class. More...
 
class  qflow_chart_t
 Proxy of C++ qflow_chart_t class. More...
 

Functions

"void" gen_gdl (*args)
 gen_gdl(g, fname) Create GDL file for graph.
 
"int" display_gdl (*args)
 display_gdl(fname) -> int Display GDL file by calling wingraph32.
 
"bool" gen_flow_graph (*args)
 gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool Build and display a flow graph.
 
"bool" gen_simple_call_chart (*args)
 gen_simple_call_chart(filename, wait, title, gflags) -> bool Build and display a simple function call graph.
 
"bool" gen_complex_call_chart (*args)
 gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool Build and display a complex xref graph.
 
"bool" is_noret_block (*args)
 is_noret_block(btype) -> bool Does this block never return?
 
"bool" is_ret_block (*args)
 is_ret_block(btype) -> bool Does this block return?
 

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
 
 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 ( * args)

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.

Parameters
fname(C++: const char *) char const *
Returns
: error code from os, 0 if ok

◆ gen_complex_call_chart()

"bool" gen_complex_call_chart ( * args)
Parameters
filename(C++: const char *) output file name. the file extension is not used. maybe nullptr.
wait(C++: const char *) message to display during graph building
title(C++: const char *) graph title
ea1(C++: ea_t) ,ea2: address range
flags(C++: int) 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.
flags(C++: int) 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.
recursion_depth(C++: int32) optional limit of recursion
Returns
: success. if fails, a warning message is displayed on the screen

◆ gen_flow_graph()

"bool" gen_flow_graph ( * args)
Parameters
filename(C++: const char *) output file name. the file extension is not used. maybe nullptr.
title(C++: const char *) graph title
pfn(C++: func_t *) function to graph
ea1(C++: ea_t) ,ea2: if pfn == nullptr, then the address range
gflags(C++: int) combination of Flow graph building flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the function will return false
gflags(C++: int) 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()

"void" gen_gdl ( * args)
Parameters
g(C++: const gdl_graph_t *) gdl_graph_t const *
fname(C++: const char *) char const *

◆ gen_simple_call_chart()

"bool" gen_simple_call_chart ( * args)
Parameters
filename(C++: const char *) output file name. the file extension is not used. maybe nullptr.
wait(C++: const char *) message to display during graph building
title(C++: const char *) graph title
gflags(C++: int) 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 ( * args)
Parameters
btype(C++: fc_block_type_t) enum fc_block_type_t

◆ is_ret_block()

"bool" is_ret_block ( * args)
Parameters
btype(C++: fc_block_type_t) enum fc_block_type_t

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

◆ 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