gdbhelp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. define ____print_pharht
  10. set $ht = $arg0
  11. set $p = $ht.pListHead
  12. while $p != 0
  13. set $i = $ind
  14. while $i > 0
  15. printf " "
  16. set $i = $i - 1
  17. end
  18. set $temp = *(phar_archive_data*)$p->pDataPtr
  19. ____print_str $temp.fname $temp.fname_len
  20. printf " => "
  21. if $arg1 == 0
  22. printf "%i (alias ", $temp.refcount
  23. ____print_str $temp.alias $temp.alias_len
  24. printf ")\n"
  25. end
  26. set $p = $p->pListNext
  27. end
  28. end
  29. define print_phar
  30. set $ind = 1
  31. ___pharglobals
  32. printf "{"
  33. ____print_pharht $pharglobals.phar_fname_map 0
  34. printf "}\n"
  35. end
  36. document display_phar_globals
  37. display phar globals
  38. end
  39. define display_phar_globals
  40. ___pharglobals
  41. graph display $phar_globals.$arg0
  42. end
  43. define print_pharfp
  44. ___pharglobals
  45. set $ht = $pharglobals.phar_fname_map
  46. set $p = $ht.pListHead
  47. set $fpcount = 0
  48. while $p != 0
  49. set $pharname = (*(phar_archive_data*)$p->pDataPtr).fname
  50. set $pharrefcount = (*(phar_archive_data*)$p->pDataPtr).refcount
  51. if (*(phar_archive_data*)$p->pDataPtr).fp != 0
  52. set $fpcount = $fpcount + 1
  53. printf "phar %s is open (%i)\n", $pharname, $pharrefcount
  54. end
  55. set $manifest = (*(phar_archive_data*)$p->pDataPtr).manifest
  56. set $m = $manifest.pListHead
  57. while $m != 0
  58. if (*(phar_entry_info *)$m->pData).fp
  59. set $fpcount = $fpcount + 1
  60. set $a = (*(phar_entry_info *)$m->pData).fp_refcount
  61. printf "phar %s file %s is open (%i)\n", $pharname, (*(phar_entry_info *)$m->pData).filename, $a
  62. end
  63. set $m = $m->pListNext
  64. end
  65. set $p = $p->pListNext
  66. end
  67. printf "Open file pointers: %d\n", $fpcount
  68. end
  69. document print_pharfp
  70. displays all open file pointers in phar, and the phars plus entries that are open with reference counts
  71. end
  72. define dump_entry
  73. ___pharglobals
  74. set $ht = $pharglobals.phar_fname_map
  75. set $p = $ht.pListHead
  76. set $done = 0
  77. while $p != 0
  78. set $t = (*(phar_archive_data*)$p->pDataPtr)
  79. if $t.fname[0] == $arg0[0] || $t.alias[0] == $arg0[0]
  80. set $manifest = (*(phar_archive_data*)$p->pDataPtr).manifest
  81. set $m = $manifest.pListHead
  82. while $m != 0
  83. if (*(phar_entry_info *)$m->pData).filename[0] == $arg1[0]
  84. if $argc == 3
  85. output *((phar_entry_info *)$m->pData)->fp
  86. end
  87. if $argc == 2
  88. output *(phar_entry_info *)$m->pData
  89. end
  90. printf "\n"
  91. set $done = 1
  92. loop_break
  93. end
  94. set $m = $m->pListNext
  95. end
  96. end
  97. if $done == 1
  98. loop_break
  99. end
  100. set $p = $p->pListNext
  101. end
  102. end
  103. document dump_entry
  104. dump_entry "pharname"|"pharalias" "filename" [1]
  105. display phar_entry_info for a file within a phar. If the optional third param
  106. is passed in, displays the php_stream that is the file's fp
  107. end