You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by do...@hyperreal.org on 1998/05/12 02:39:54 UTC
cvs commit: modperl .gdbinit
dougm 98/05/11 17:39:53
Added: . .gdbinit
Log:
something I don't want to loose, might be handy for others too.
Revision Changes Path
1.1 modperl/.gdbinit
Index: .gdbinit
===================================================================
#some handy debugging macros, hopefully you'll never need them
#some don't quite work, like dump_hv and hv_fetch,
#where's the bloody manpage for .gdbinit syntax?
define httpd
run -X -d `pwd`/t
end
define STpvx
print ((XPV*) (Perl_stack_base [ax + ($arg0)] )->sv_any )->xpv_pv
end
define TOPs
print ((XPV*) (**sp)->sv_any )->xpv_pv
end
define curstash
print ((XPVHV*) (curstash)->sv_any)->xhv_name
end
define defstash
print ((XPVHV*) (defstash)->sv_any)->xhv_name
end
define curcopfile
print ((XPV*) ((((XPVGV*)Perl_curcop->cop_filegv)->xgv_gp)->gp_sv)->sv_any)->xpv_pv
end
define SvPVX
print ((XPV*) ($arg0)->sv_any )->xpv_pv
end
define SvCUR
print ((XPV*) ($arg0)->sv_any )->xpv_cur
end
define SvLEN
print ((XPV*) ($arg0)->sv_any )->xpv_len
end
define SvEND
print (((XPV*) ($arg0)->sv_any )->xpv_pv + ((XPV*)($arg0)->sv_any )->xpv_cur) - 1
end
define SvSTASH
print ((XPVHV*)((XPVMG*)($arg0)->sv_any )->xmg_stash)->sv_any->xhv_name
end
define SvTAINTED
print ((($arg0)->sv_flags & (0x00002000 |0x00004000 |0x00008000 )) && Perl_sv_tainted ($arg0))
end
define SvTRUE
print ( !$arg0 ? 0 : (($arg0)->sv_flags & 0x00040000 ) ? ((Perl_Xpv = (XPV*)($arg0)->sv_any ) && (*Perl_Xpv ->xpv_pv > '0' || Perl_Xpv ->xpv_cur > 1 || (Perl_Xpv ->xpv_cur && *Perl_Xpv ->xpv_pv != '0')) ? 1 : 0) : (($arg0)->sv_flags & 0x00010000 ) ? ((XPVIV*) ($arg0)->sv_any )->xiv_iv != 0 : (($arg0)->sv_flags & 0x00020000 ) ? ((XPVNV*)($arg0)->sv_any )->xnv_nv != 0.0 : Perl_sv_2bool ($arg0) )
end
define GvHV
set $hv = (((((XPVGV*)($arg0)->sv_any ) ->xgv_gp) )->gp_hv)
end
define GvSV
print ((XPV*) ((((XPVGV*)($arg0)->sv_any ) ->xgv_gp) ->gp_sv )->sv_any )->xpv_pv
end
define GvNAME
print (((XPVGV*)($arg0)->sv_any ) ->xgv_name)
end
define GvFILEGV
print ((XPV*) ((((XPVGV*)$arg0->filegv)->xgv_gp)->gp_sv)->sv_any)->xpv_pv
end
define CvNAME
print ((XPVGV*)(((XPVCV*)($arg0)->sv_any)->xcv_gv)->sv_any)->xgv_name
end
define CvSTASH
print ((XPVHV*)(((XPVGV*)(((XPVCV*)($arg0)->sv_any)->xcv_gv)->sv_any)->xgv_stash)->sv_any)->xhv_name
end
define CvDEPTH
print ((XPVCV*)($arg0)->sv_any )->xcv_depth
end
define CvFILEGV
print ((XPV*) ((((XPVGV*)((XPVCV*)($arg0)->sv_any )->xcv_filegv)->xgv_gp)->gp_sv)->sv_any)->xpv_pv
end
define SVOPpvx
print ((XPV*) ( ((SVOP*)$arg0)->op_sv)->sv_any )->xpv_pv
end
define HvNAME
print ((XPVHV*)$arg0->sv_any)->xhv_name
end
define HvKEYS
print ((XPVHV*) ($arg0)->sv_any)->xhv_keys
end
define AvFILL
print ((XPVAV*) ($arg0)->sv_any)->xav_fill
end
define dump_av
set $n = ((XPVAV*) ($arg0)->sv_any)->xav_fill
set $i = 0
while $i <= $n
set $sv = *Perl_av_fetch($arg0, $i, 0)
printf "[%u] -> `%s'\n", $i, ((XPV*) ($sv)->sv_any )->xpv_pv
set $i = $i + 1
end
end
define dump_hv
set $n = ((XPVHV*) ($arg0)->sv_any)->xhv_keys
set $i = 0
set $key = 0
set $klen = 0
Perl_hv_iterinit($arg0)
while $i <= $n
set $sv = Perl_hv_iternextsv($arg0, &$key, &$klen)
printf "%s = `%s'\n", $key, ((XPV*) ($sv)->sv_any )->xpv_pv
set $i = $i + 1
end
end
define hv_fetch
set $klen = strlen($arg1)
set $sv = *Perl_hv_fetch($arg0, $arg1, $klen, 0)
printf "%s = `%s'\n", $arg1, ((XPV*) ($sv)->sv_any )->xpv_pv
end
define hvINCval
set $hv = (((((XPVGV*)(incgv)->sv_any)->xgv_gp))->gp_hv)
set $klen = strlen($arg0)
set $sv = *Perl_hv_fetch($hv, $arg0, $klen, 0)
printf "%s = `%s'\n", $arg0, ((XPV*) ($sv)->sv_any )->xpv_pv
end