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