"Fossies" - the Fresh Open Source Software Archive 
Member "php-8.0.28-src/ext/phar/gdbhelp" (14 Feb 2023, 2857 Bytes) of package /windows/www/php-8.0.28-src.zip:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 define ___pharglobals
2 if basic_functions_module.zts
3 set $tsrm_ls = ts_resource_ex(0, 0)
4 set $pharglobals = ((zend_phar_globals) (*((void ***) $tsrm_ls))[phar_globals_id-1])
5 else
6 set $pharglobals = phar_globals
7 end
8 end
9
10 define ____print_pharht
11 set $ht = $arg0
12 set $p = $ht.pListHead
13
14 while $p != 0
15 set $i = $ind
16 while $i > 0
17 printf " "
18 set $i = $i - 1
19 end
20
21 set $temp = *(phar_archive_data*)$p->pDataPtr
22 ____print_str $temp.fname $temp.fname_len
23 printf " => "
24
25 if $arg1 == 0
26
27 printf "%i (alias ", $temp.refcount
28 ____print_str $temp.alias $temp.alias_len
29 printf ")\n"
30 end
31
32 set $p = $p->pListNext
33 end
34 end
35
36 define print_phar
37 set $ind = 1
38 ___pharglobals
39 printf "{"
40 ____print_pharht $pharglobals.phar_fname_map 0
41 printf "}\n"
42 end
43
44 document display_phar_globals
45 display phar globals
46 end
47
48 define display_phar_globals
49 ___pharglobals
50 graph display $phar_globals.$arg0
51 end
52
53 define print_pharfp
54 ___pharglobals
55 set $ht = $pharglobals.phar_fname_map
56 set $p = $ht.pListHead
57 set $fpcount = 0
58
59 while $p != 0
60 set $pharname = (*(phar_archive_data*)$p->pDataPtr).fname
61 set $pharrefcount = (*(phar_archive_data*)$p->pDataPtr).refcount
62 if (*(phar_archive_data*)$p->pDataPtr).fp != 0
63 set $fpcount = $fpcount + 1
64 printf "phar %s is open (%i)\n", $pharname, $pharrefcount
65 end
66 set $manifest = (*(phar_archive_data*)$p->pDataPtr).manifest
67 set $m = $manifest.pListHead
68 while $m != 0
69 if (*(phar_entry_info *)$m->pData).fp
70 set $fpcount = $fpcount + 1
71 set $a = (*(phar_entry_info *)$m->pData).fp_refcount
72 printf "phar %s file %s is open (%i)\n", $pharname, (*(phar_entry_info *)$m->pData).filename, $a
73 end
74 set $m = $m->pListNext
75 end
76
77 set $p = $p->pListNext
78 end
79 printf "Open file pointers: %d\n", $fpcount
80 end
81
82 document print_pharfp
83 displays all open file pointers in phar, and the phars plus entries that are open with reference counts
84 end
85
86 define dump_entry
87 ___pharglobals
88 set $ht = $pharglobals.phar_fname_map
89 set $p = $ht.pListHead
90 set $done = 0
91 while $p != 0
92 set $t = (*(phar_archive_data*)$p->pDataPtr)
93 if $t.fname[0] == $arg0[0] || $t.alias[0] == $arg0[0]
94 set $manifest = (*(phar_archive_data*)$p->pDataPtr).manifest
95 set $m = $manifest.pListHead
96 while $m != 0
97 if (*(phar_entry_info *)$m->pData).filename[0] == $arg1[0]
98 if $argc == 3
99 output *((phar_entry_info *)$m->pData)->fp
100 end
101 if $argc == 2
102 output *(phar_entry_info *)$m->pData
103 end
104 printf "\n"
105 set $done = 1
106 loop_break
107 end
108 set $m = $m->pListNext
109 end
110 end
111 if $done == 1
112 loop_break
113 end
114 set $p = $p->pListNext
115 end
116 end
117
118 document dump_entry
119 dump_entry "pharname"|"pharalias" "filename" [1]
120 display phar_entry_info for a file within a phar. If the optional third param
121 is passed in, displays the php_stream that is the file's fp
122 end