phptrace —— 來自 360 的 PHP 執行流程跟蹤

2020-12-13 開源中國

phptrace 是一個追蹤(trace)PHP執行流程的工具,你如果用過strace的話,則可能很容易想到phptrace到底實現了什麼樣的功能。 其實,phptrace是類strace的一個實現,不同的是,strace用來追蹤系統調用,而phptrace用來追蹤PHP函數調用。無論是開發測試 還是線上追查問題,代碼執行流程往往會提供許多有用的信息,大大提高了開發人員的工作效率;對於系統函數,我們可以用strace 來觀察其調用信息,然而PHP卻長久以來缺少這麼一個行之有效的工具,因此我們開發了phptrace。

相關焦點

  • PHPTrace 0.3 發布,線上調試工具
    PHPTrace是一個低開銷的用於跟蹤、分析PHP運行情況的工具。它可以跟蹤PHP在運行時的函數調用、請求信息、執行流程,並且提供有過濾器、統計信息 、當前狀態等實用功能。在任何環境下,它都能很好的定位阻塞問題以及在高負載下Debug,尤其是線上產品環境。
  • php學習之php的流程控制if和switch的使用
    流程控制有哪些:ifelseelseif/else ifwhile>2.if….else語句語法:if(條件表達式){達成條件表達式時執行代碼塊}else{執行未達成條件表達式的代碼塊}>特點:不管達成還是沒有達成條件,都會執行一次代碼,要麼執行達成的,要麼執行沒有達成的3.if….elseif…語句語法:if(條件表達試1){達成條件1運行的代碼塊}else if(條件表達式2){
  • 關於PHP程式設計師解決問題的能力
    這裡舉個例子,假如我執行了一個PHP的腳本,如php test.php,預期是可以返回一個字符串。但執行後沒有任何信息輸出,這時候通過什麼方法能知道程序錯在哪裡?這裡可以將解決問題能力分為8個等級,越到後面的表示能力越強。
  • 代碼執行、命令執行漏洞-PHP
    php $b= "phpinfo()"; call_user_func($_GET['a'],$b);?>執行結果:PHP Version 5.3.28動態函數執行:PHP特性-PHP的函數可以直接由字符串拼接   <?
  • PHP 那些「坑」
    是弱語言,會自動判斷數據類型,0eXXXXXXXXXX 轉成 0 了 //來自文檔:如果比較一個數字和字符串或者比較涉及到數字內容的字符串,則字符串會被轉換為數值並且比較按照數值來進行。' => "laruence", ':password' => "weibo");foreach( $bind_params as $key => $value ){    $statement->bindParam($key, $value);}$statement->execute();//期望執行
  • PHP編程中break及continue兩個流程控制指令
    首頁 > 語言 > 關鍵詞 > php最新資訊 > 正文 PHP編程中break及continue兩個流程控制指令
  • 從0開始的PHP RASP的學習
    PHP RASP的設計思路很直接,安全圈有一句名言叫一切輸入都是有害的,我們就跟蹤這些有害變量,看它們是否對系統造成了危害。我們跟蹤了HTTP請求中的所有參數、HTTP Header等一切client端可控的變量,隨著這些變量被使用、被複製,信息隨之流動,我們也跟蹤了這些信息的流動。
  • php中Generator(生成器)的執行過程
    說到php中的Generator(生成器),有人可能會想到協程,這裡我們先不說php如何實現協程,我們探究下Generator的執行過程。Generator是通過yield實現,yield 關鍵字是php5.5版本推出的一個特性。
  • PHP基礎入門
    >流程控制語句<?真情況:假情況``反引號反引號中間插入代碼,執行系統命令,等價於shell_exec函數@表示抑制錯誤,把這一行的錯誤不讓它顯示出來了,效率低不建議用=>數組下標訪問符->對象訪問符instanceof判斷某個對象是否來自某個類,如果是的返回true,如果不是返回false
  • 1.PHP網站後門
    二、web shell檢測流程Webshell的運行流程:hacker -> HTTP Protocol -> Web Server -> CGI。hacker以HTTP協議訪問web server上的cgi文件(web shell是合法的TCP連接,很難識別其特徵,只有在應用層進行檢測)。
  • (基礎篇)PHP流程控制語句
    從執行方式上看,語句的控制結構分為以下三種:1、  順序結構:從第一條語句到最後一條語句完全順序執行;2、  選擇結構:根據用戶輸入或語句的中間結果去執行若干任務;3、  循環結構:根據某條條件重複地執行某項任務若干次,或直到達成目標即可。
  • 搜索 PHP代碼審計之旅
    本文轉自先知社區:https://xz.aliyun.com/t/7992前言:之前做了很多web題都遇到過審計代碼的題目,命令執行、變量覆蓋等
  • PHP反序列化筆記
    data=O:%2b4:"baby":1:{s:4:"file";s:8:"flag.php";}CVE-2016-7124漏洞介紹當序列化字符串中表示對象屬性個數的值大於真實的屬性個數時會跳過__wakeup的執行演示代碼
  • php 序列化與反序列化
    反序列化的問題,打算這篇文章寫一下php反序列化。 反序列化時會執行數組中的內容。return $question[1]; });        } $this->app->bind(OutputStyle::class, function () use ($mock) { return $mock; }); }乍一看需要判斷的條件很多,為了簡化流程
  • file_put_contents+php-fpm如何命令執行
    本文學習file_put_contents + FTP + php-fpm的命令執行。原理參考[2],我們可以得知,PHP-FPM未授權訪問時,可以通過修改變量auto_prepend_file或auto_append_file來執行文件。根據[1]中描述,我們需要讓file_put_contents時,將結果寫到php-fpm,這樣造成命令執行。
  • 程序中的流程控制的定義是什麼?php有哪三種基本的程序結構?
    流程控制的定義流程控制是控制程序的手段,如果程序沒有了流程控制,就不會有程設計語言,大多數程序不是線性執行語句控制,如果程序需要和用戶交流,要根據用戶輸入決定執行序列,甚至需要代碼反覆執行,這些都離不了流程控制,在php中有三種基本的程序結構:順序結構、分支結構、循環結構一、順序結構順序結構是最常用的語句結構比如說賦值語句,它的執行順序自上而下
  • PHP在Linux下執行定時任務的實現思路詳解
    一、Linux伺服器上使用CronTab定時執行php我們先從相對比較複雜的伺服器執行php談起。伺服器上安裝了php,就可以執行php文件,無論是否安裝了nginx或Apache這樣的伺服器環境軟體。
  • 淺談PHP語法(4)
    >文件:deal.php <?php echo "你的用戶名為:$uname"; ?> 以上程序會要求用戶輸入一個用戶名,提交表單後,後回用戶名確認信息。可看出,表單中的uname已成為了deal.php程序中的$uname變崐量。簡單吧。
  • php面試題之—PHP核心技術(高級部分)
    (Yahoo)A.fget();B.file_open();C.fopen();D.open_file();答案:Cfget()這不是一個PHP函數,會引致執行錯誤。file_open()這不是一個PHP函數,會引致執行錯誤。fopen()這是正確答案,fopen()可以用來開啟檔案以便讀寫。
  • 手把手擼PHP擴展 0x03: 理解PHP生命周期的過程
    PHP_MSHUTDOWN_FUNCTION(study){ return SUCCESS;}PHP_RINIT_FUNCTION(study){ return SUCCESS;}PHP_RSHUTDOWN_FUNCTION(study){ return SUCCESS;}這幾個函數是伴隨著PHP生命周期來執行的