Blame dotgdbinit

Packit Service b38f0b
#
Packit Service b38f0b
# this file defines some utilities for printing various structures
Packit Service b38f0b
# found in the net-snmp source code.  You can source it from within
Packit Service b38f0b
# gdb and then use it to print variable chains, oids, etc directly
Packit Service b38f0b
# from memory.
Packit Service b38f0b
# 
Packit Service b38f0b
# as an example, consider the variables:
Packit Service b38f0b
#
Packit Service b38f0b
#   oid    *name;
Packit Service b38f0b
#   size_t name_len;
Packit Service b38f0b
#
Packit Service b38f0b
# normally display oids is difficult under gdb, and the best you can
Packit Service b38f0b
# do is to use x/12dw name or so to print the first 12 numbers of the
Packit Service b38f0b
# oid array.  however, with this file you can now use:
Packit Service b38f0b
#
Packit Service b38f0b
#   gdb> printoid name_len name
Packit Service b38f0b
#   .1.3.6.1.2.1.1.0
Packit Service b38f0b
#
Packit Service b38f0b
# which will print oids in a more readable fashion.  etc...
Packit Service b38f0b
#
Packit Service b38f0b
Packit Service b38f0b
define initme
Packit Service b38f0b
  set $varindent = ""
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define hookpost-run
Packit Service b38f0b
  initme
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define printvarval
Packit Service b38f0b
  printf "value: "
Packit Service b38f0b
  if $arg0->type == 2
Packit Service b38f0b
    printf "int: %d\n", $arg0->val.integer
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 4
Packit Service b38f0b
    printf "string: %s\n", $arg0->val.string
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 5
Packit Service b38f0b
    printf "ASN NULL\n"
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 6
Packit Service b38f0b
    printoid (($arg0->val_len)/sizeof(oid)) $arg0->val.objid
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 128
Packit Service b38f0b
    printf "NO SUCH NAME\n"
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 129
Packit Service b38f0b
    printf "NO SUCH INSTANCE\n"
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 130
Packit Service b38f0b
    printf "END OF MIB VIEW\n"
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 194
Packit Service b38f0b
    printf "AGENTX INCL RANGE: "
Packit Service b38f0b
    printoid (($arg0->val_len)/sizeof(oid)) $arg0->val.objid
Packit Service b38f0b
  end
Packit Service b38f0b
  if $arg0->type == 195
Packit Service b38f0b
    printf "AGENTX EXCL RANGE: "
Packit Service b38f0b
    printoid (($arg0->val_len)/sizeof(oid)) $arg0->val.objid
Packit Service b38f0b
  end
Packit Service b38f0b
end
Packit Service b38f0b
document printvarval
Packit Service b38f0b
  printvarval VARPTR
Packit Service b38f0b
  prints the value part of a net-snmp "struct variable".
Packit Service b38f0b
  This is called from inside printvar.
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
  
Packit Service b38f0b
Packit Service b38f0b
define printvar
Packit Service b38f0b
  printf "%stype: %d\n", $varindent, $arg0->type
Packit Service b38f0b
  printf "%soid: ", $varindent
Packit Service b38f0b
  printoid $arg0->name_length $arg0->name
Packit Service b38f0b
  printf "%s", $varindent
Packit Service b38f0b
  printvarval $arg0
Packit Service b38f0b
end
Packit Service b38f0b
document printvar
Packit Service b38f0b
  printvar VARPTR
Packit Service b38f0b
  prints the variable information contained in a net-snmp struct
Packit Service b38f0b
  variable.  printvarval POINTER will print it's oid, value type and
Packit Service b38f0b
  value contents
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define printvars
Packit Service b38f0b
  set $tmpcount = 1
Packit Service b38f0b
  set $tmpvar = $arg0
Packit Service b38f0b
  set $varindent = "  "
Packit Service b38f0b
  while $tmpvar != 0
Packit Service b38f0b
    printf "VARIABLE #%d\n", $tmpcount
Packit Service b38f0b
    printvar $tmpvar
Packit Service b38f0b
    set $tmpvar = $tmpvar->next_variable
Packit Service b38f0b
    set $tmpcount = $tmpcount + 1
Packit Service b38f0b
  end
Packit Service b38f0b
  set $varindent = ""
Packit Service b38f0b
end
Packit Service b38f0b
document printvars
Packit Service b38f0b
  printvars VARPTR
Packit Service b38f0b
  calls printvar repeatedly on a chain of variables, displaying all
Packit Service b38f0b
  the variables in a net-snmp struct variable chain.
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define printoid
Packit Service b38f0b
  set $printoid_tmp = 0
Packit Service b38f0b
  while $printoid_tmp < $arg0
Packit Service b38f0b
    printf ".%d", $arg1[$printoid_tmp]
Packit Service b38f0b
    set $printoid_tmp = $printoid_tmp + 1
Packit Service b38f0b
  end
Packit Service b38f0b
  printf "\n"
Packit Service b38f0b
end
Packit Service b38f0b
document printoid
Packit Service b38f0b
  printoid LENGTH OIDPTR
Packit Service b38f0b
  prints an oid (.x.y.z...) given it's length and a pointer.
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define poid
Packit Service b38f0b
  printoid $arg0_len $arg0
Packit Service b38f0b
end
Packit Service b38f0b
document poid
Packit Service b38f0b
  poid NAME
Packit Service b38f0b
  shorthand for 'printoid NAME_len NAME"
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define poidl
Packit Service b38f0b
  printoid $arg0_length $arg0
Packit Service b38f0b
end
Packit Service b38f0b
document poidl
Packit Service b38f0b
  poid NAME
Packit Service b38f0b
  shorthand for 'printoid NAME_length NAME"
Packit Service b38f0b
end
Packit Service b38f0b
Packit Service b38f0b
define printindex
Packit Service b38f0b
  printoid $arg0->len $arg0->oids
Packit Service b38f0b
end
Packit Service b38f0b
document printindex
Packit Service b38f0b
  printindex NETSNMP_INDEX_PTR
Packit Service b38f0b
  prints the OID contained in a netsnmp_index struct variable.
Packit Service b38f0b
end
Packit Service b38f0b