123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- define ___pharglobals
- if basic_functions_module.zts
- set $tsrm_ls = ts_resource_ex(0, 0)
- set $pharglobals = ((zend_phar_globals) (*((void ***) $tsrm_ls))[phar_globals_id-1])
- else
- set $pharglobals = phar_globals
- end
- end
- define ____print_pharht
- set $ht = $arg0
- set $p = $ht.pListHead
- while $p != 0
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
- set $temp = *(phar_archive_data*)$p->pDataPtr
- ____print_str $temp.fname $temp.fname_len
- printf " => "
- if $arg1 == 0
- printf "%i (alias ", $temp.refcount
- ____print_str $temp.alias $temp.alias_len
- printf ")\n"
- end
- set $p = $p->pListNext
- end
- end
- define print_phar
- set $ind = 1
- ___pharglobals
- printf "{"
- ____print_pharht $pharglobals.phar_fname_map 0
- printf "}\n"
- end
- document display_phar_globals
- display phar globals
- end
- define display_phar_globals
- ___pharglobals
- graph display $phar_globals.$arg0
- end
- define print_pharfp
- ___pharglobals
- set $ht = $pharglobals.phar_fname_map
- set $p = $ht.pListHead
- set $fpcount = 0
- while $p != 0
- set $pharname = (*(phar_archive_data*)$p->pDataPtr).fname
- set $pharrefcount = (*(phar_archive_data*)$p->pDataPtr).refcount
- if (*(phar_archive_data*)$p->pDataPtr).fp != 0
- set $fpcount = $fpcount + 1
- printf "phar %s is open (%i)\n", $pharname, $pharrefcount
- end
- set $manifest = (*(phar_archive_data*)$p->pDataPtr).manifest
- set $m = $manifest.pListHead
- while $m != 0
- if (*(phar_entry_info *)$m->pData).fp
- set $fpcount = $fpcount + 1
- set $a = (*(phar_entry_info *)$m->pData).fp_refcount
- printf "phar %s file %s is open (%i)\n", $pharname, (*(phar_entry_info *)$m->pData).filename, $a
- end
- set $m = $m->pListNext
- end
- set $p = $p->pListNext
- end
- printf "Open file pointers: %d\n", $fpcount
- end
- document print_pharfp
- displays all open file pointers in phar, and the phars plus entries that are open with reference counts
- end
- define dump_entry
- ___pharglobals
- set $ht = $pharglobals.phar_fname_map
- set $p = $ht.pListHead
- set $done = 0
- while $p != 0
- set $t = (*(phar_archive_data*)$p->pDataPtr)
- if $t.fname[0] == $arg0[0] || $t.alias[0] == $arg0[0]
- set $manifest = (*(phar_archive_data*)$p->pDataPtr).manifest
- set $m = $manifest.pListHead
- while $m != 0
- if (*(phar_entry_info *)$m->pData).filename[0] == $arg1[0]
- if $argc == 3
- output *((phar_entry_info *)$m->pData)->fp
- end
- if $argc == 2
- output *(phar_entry_info *)$m->pData
- end
- printf "\n"
- set $done = 1
- loop_break
- end
- set $m = $m->pListNext
- end
- end
- if $done == 1
- loop_break
- end
- set $p = $p->pListNext
- end
- end
- document dump_entry
- dump_entry "pharname"|"pharalias" "filename" [1]
- display phar_entry_info for a file within a phar. If the optional third param
- is passed in, displays the php_stream that is the file's fp
- end
|