95 for (index = first_nf_index; index < first_nf_index +
105 "%s next index %d owns enqueue rights to %s\n",
107 index - first_nf_index,
109 fformat (stderr,
" nf index %d nf->frame_index %d\n",
135 fformat(stderr,
"node runtime index %d name %s\n", index, nm->
nodes[index]->
name);
154 vlib_cli_output (vm,
"debug_hex_bytes (ptr, n_bytes) dumps n_bytes in hex");
156 vlib_cli_output (vm,
"vlib_runtime_index_to_node_name (index) prints NN");
163 .short_help =
"Describe functions which can be called from gdb",
void vlib_runtime_index_to_node_name(u32 index)
GDB callable function: vlib_runtime_index_to_node_name.
static vlib_main_t * vlib_get_main(void)
void vlib_dump_frame_ownership(void)
GDB callable function: vlib_dump_frame_ownership.
void debug_hex_bytes(u8 *s, u32 n)
GDB callable function: debug_hex_bytes - return formatted hex string.
#define VLIB_INIT_FUNCTION(x)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
vlib_node_runtime_t * nodes_by_type[VLIB_N_NODE_TYPE]
static clib_error_t * show_gdb_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
GDB callable function: show_gdb_command_fn - show gdb.
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
#define VLIB_CLI_COMMAND(x,...)
clib_error_t * gdb_func_init(vlib_main_t *vm)
int pifi(void *p, u32 index)
GDB callable function: pifi - call pool_is_free_index - is passed index free?
uword pe(void *v)
GDB callable function: pe - call pool_elts - number of elements in a pool.
u32 vl(void *p)
GDB callable function: vl - Return vector length of vector.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
vlib_node_main_t node_main
vlib_next_frame_t * next_frames
#define vec_foreach(var, vec)
Vector iterator.
static uword pool_elts(void *v)
Number of active elements in a pool.