SwooleDistributed 發布開發者工具 SDHelper

2020-12-11 開源中國

SDHelper

SDHelper是SwooleDistributed隆重推出的開發者工具,配合最新版本的SD框架可以實現遠程斷點調試和代碼覆蓋率檢測的功能,無需安裝xdebug擴展。

SD遠程斷點調試

我們打開工具選擇SD調試,在右側默認填寫了連接地址。

需要下載安裝最新的SD框架v3.2.7,找到backstage配置文件打開對應配置

//是否啟用backstage$config['backstage']['enable'] = true;//是否啟用xdebug$config['backstage']['xdebug_enable'] = true;//web頁面訪問埠$config['backstage']['port'] = 18000;//提供的ws埠$config['backstage']['socket'] = "0.0.0.0";$config['backstage']['websocket_port'] = 18083;//設置路徑$config['backstage']['bin_path'] = "/bin/exec/backstage";return $config;

配置中的websocket_port埠即為遠程調試埠,backstage.enable和backstage.xdebug_enable均要設置為true。
接下來使用xdebug啟動命令來啟動框架

php start_swoole_server.php xdebug

也可以添加-d選項,變成守護進程,xdebug命令啟動伺服器不會額外佔用伺服器資源,開發調試階段均可使用該命令來代替start,但是使用xdebug後自動reload和reload命令將失效,更新代碼必須重啟伺服器(根據版本的迭代後期會消除這種美中不足)。

此處的xdebug和xdebug擴展不是同一個,SD的遠程斷點調試無需安裝xdebug擴展。

通過xdebug命令啟動伺服器後,可以打開SDHelp點擊連接按鈕。連接傷後可以通過輸入文件名打開對應文件,通過添加斷點按鈕來添加斷點。

然後點擊開始調試

點擊開始調試後就不能添加斷點了,可以斷開調試,重新下斷點

我們訪問對應的邏輯。

可以看到邏輯已經進入斷點處,可以查看當前所有的變量信息,點擊繼續執行按鈕,可以跳轉到下一處斷點

調試器只會捕獲一次請求,也就是說斷點只會斷在一個請求上,對於其他的請求不會有影響,並發請求時斷點只會影響到其中一個請求上。

如果請求結束還想繼續捕獲的話,可以點擊重新捕獲按鈕,如果想結束調試可以點擊結束調試按鈕。

遠程調試器可以查看當前斷點的所有數據,這是var_dump和print_f大法無法替代的優勢,而且可以隨時打斷點不必修改代碼,並且只會捕獲其中一次的請求,不會眼花繚亂。但是也有限制,不支持自定義進程的調試,代碼必須在app目錄下才支持遠程調試。

代碼覆蓋率測試

代碼覆蓋率測試需要啟動特殊的命令執行

php start_swoole_server.php coverage

含有2個額外參數

coverage啟動會對性能有所影響,所以不適合壓測。
此時可以叫測試進行全方位的測試,測試結束可以查看測試的代碼覆蓋率。

沒有顏色的代表沒有被執行到,顏色越紅代表執行的次數越多。
可以通過調用次數排名來查看代碼執行次數的排行

如果次數過高需要注意是不是存在大量的循環需要優化,或者出現了死循環。

TCP/WS連接調試!

工具提供了tcp和ws的連接調試,比市面上的工具都會更加好用些

協議二進位數據構建

可以通過工具的Hex數據構建來模擬各類協議的組成,方便理解協議的構成。

SD會不斷的成長壯大,為大家提供一個更舒適的開發體驗。

git獲取:https://github.com/SwooleDistributed/SDHelper-Bin

SwooleDistributed框架 https://github.com/SwooleDistributed/SwooleDistributed

相關焦點

  • IMI 正式發布!基於 Swoole 的協程 PHP 開發框架
    IMI 框架文檔豐富,上手容易,致力於讓開發者跟使用傳統 MVC 框架一樣順手。IMI 框架底層開發使用了強類型,易維護,性能更強。支持 Aop ,支持使用註解和配置文件注入,完全遵守 PSR-3、4、7、11、15、16 標準規範。框架的擴展性強,開發者可以根據實際需求,自行開發相關驅動進行擴展。不止於框架本身提供的功能和組件!
  • ThinkCMF 5.1.1 正式發布,優化 swoole 下性能
    ThinkCMF5.1 做你的專屬開發框架,讓你更自由地飛ThinkCMF5.1化繁為簡,基於ThinkPHP 5.1重構所有核心代碼 ,目標是做你的專屬開發框架,讓開發者更自由地創作,開發者只需關注應用,插件,模板和 API的業務邏輯實現,而所有核心庫、核心應用都通過composer包加載。
  • 分布式常用工具組件 distributed-tool V1.3 發布
    其中包括但不限於:分布式List、分布式Set、分布式Long、分布式信號量、分布式緩存、分布式鎖、分布式序列號生成器、分布式訂閱發布模式等常用工具類目前微服務開發的系統很多,這個就涉及到分布式集群問題。
  • Swoole v4.5.8 版本發布,新增 swoole_error_log 函數 - OSCHINA...
    Swoole v4.5.8 版本已經發布了,在這個版本中增加了 swoole_error_log 函數,用戶可以手動調用此函數將錯誤信息輸入到日誌中
  • Zend-Expressive-Swoole 0.2.2 支持 Swoole 4 協程
    前言Zend Framework 作為 PHP 官方框架,隨著 Zend-Expressive-Swoole 0.2.2 的發布以上的擴展就不在這多做解釋了(注意要啟用mysqlnd才能使PDO協程化),而對於 Zend 只需要通過 Composer 安裝 Zend-Expressive-Swoole 組件即可,執行 composer require zendframework/zend-expressive-swoole
  • PHP異步網絡通信引擎-Swoole的安裝與應用
    Swoole是開源免費的,企業和個人開發者均可免費使用Swoole的代碼。/swoole-src/releases。截至目前swoole已經發布了4.0版本了,這裡演示的是2.1版本的。編譯接下來就是解壓編譯。
  • 【進階】swoole異步群發郵件,估計你也沒寫過!
    我們可以在QQ郵箱的垃圾箱中找到我們剛剛發送的一封郵件我們來使用swoole實現異步群發3.1安裝swooleswoole擴展安裝的詳細步驟官網上面都有,不再贅述,swoole文檔傳送門:https://wiki.swoole.com/wiki/page/1.html安裝完swoole之後,建議為自己的IDE加上swoole的代碼提示,配置IDE提示swoole代碼的傳送門:https://github.com/eaglewu/swoole-ide-helper
  • PHP的異步並行網絡擴展Swoole已發布1.7.5版本
    PHP的異步並行網絡擴展Swoole今天發布了最新的1.7.5版本。
  • 高性能Swoole擴展的安裝與使用
    關於 Swoole 的官方中文文檔可以看這裡:https://wiki.swoole.com。了解可讀事件、可寫事件TCP/IP網絡協議了解 TCP/IP 協議了解 TCP、UDP 傳輸協議調試工具makeautoconf二、快速安裝Swoole項目已收錄到PHP官方擴展庫,除了手工下載編譯外,還可以通過PHP官方提供的pecl命令,一鍵下載安裝:pecl install swoole
  • php異步高並發擴展swoole-1.6.10版發布 - OSCHINA - 中文開源技術...
    簡介: swoole是一個php版本的異步、高並發擴展,是國人被php官方pecl包收錄的力作之一。
  • ...版本發布,完善 Swoole/Workerman 支持 - OSCHINA - 中文開源...
    [ 主要更新 ]改進關聯`append`方法的處理路由初始化和檢測方法分離修正`destroy`方法強制刪除`app_init`鉤子位置移入`run`方法`think-swoole`擴展更新到2.0版本
  • Swoole 4.1 發布,支持原生 Redis/PDO/MySQLi 協程化
    Swoole 4.1 發布了,更新如下:重大新特性支持 Redis/PDO/MySQLi
  • Swoft 2.0.6 正式版本發布
    新增和改進了兩個開發工具,方便開發者使用: swoft/swoole-tracker 可以幫開發者解決鏈路追蹤、內存洩漏、阻塞檢查意以及性能分析 swoft-cli 現在支持基本的應用骨架和組件結構創建,以及類文件生成功能調試利器 (swoft-swoole-tracker
  • TypeScript 3.5 發布,速度提升、工具智能
    TypeScript 3.5 發布了,此版本在編譯器、語言和編輯器工具上帶來了一些新特性。
  • 特務Q:laravel與swoole優雅的結合
    laravel與swoole作為當下各自兩個方向的金字塔頂端的工程,有點誇大,仁者見仁。它們好比倚天劍屠龍刀,我們期望它們的結合,誕生一門強大的功法。讓我們可以更方便開發,下面來說說它們如何優雅的結合。你需要在你伺服器上面安裝php的swoole擴展。
  • 蘋果發布AR工具包,有多少開發者注意到?
    【IT168 資訊】上周的蘋果新品發布會吸引了不少人深夜圍觀,iPhone 8和iPhone X的價格以及「帶劉海」的外觀一直被吐槽到現在,但真正引起開發者注意的是ios 11的發布,新系統讓 AR 第一次成為主流手機上的戰略級功能,程式設計師該如何擁抱這一變化呢?什麼是AR?
  • sdcardfs 淺析
    sdcardfs是基於wrapfs開發的。wrapfs是什麼、又是如何在FUSE,EXT的文件系統大家族中擁有一席之地呢?我們藉助wrapfs的開發者Erez對文件系統的分類來分析一下:大多數文件系統可以歸納到表1總結的三類中。第一類是底層文件系統,內核空間的優勢保障了這類文件系統的優越性能,但駕馭這類文件系統要求開發者對作業系統有深入理解,並不利於開發和調試。
  • 來聊聊 Shadowfax 是如何整合 Laravel 與 Swoole 的
    的確如此,我們來嘗試一下,首先創建一個新的Laravel項目:然後在Laravel項目的根目錄創建一個swoole.php腳本,代碼如下:<?phprequire __DIR__.'現在將swoole.php調整一下:<?phprequire __DIR__.'
  • Swoole 2019 :化繁為簡、破繭成蝶 - OSCHINA - 中文開源技術交流...
    Swoole開源項目從2012年開始發布第一個版本,到現在已經有近7年的歷史。