搜尋
首頁開發工具VSCodeWINDOWS下用VSCODE除錯PHP7原始碼

在之前一段時間涉及PHP擴展開發,對PHP源代碼有調試需求,然而網上大部分都是在LINUX下調試的教程,WINDOWS系統下的非常少並且過程也只是粗略一講。所以決定自己嘗試在WINDOWS下建立調試環境,畢竟,原理是相通的:)。

WINDOWS下用VSCODE除錯PHP7原始碼

1.準備

以下是我開發機上的配置,可以和我保持一致減少因為工具版本而出現額外問題的幾率。

1.Visual Code原始碼編輯偵錯工具                     (建議學習:vscode入門教學課程

2.Visual Studio2017code入門教學課程##2.Visual Studio2017code ##(VS一般都把WIN下開發需要的東西都帶全了,畢竟宇宙全家桶.....)

紅色標註區域必須安裝

WINDOWS下用VSCODE除錯PHP7原始碼3.PHP7原始碼(也可以選擇從github上拉取)

可以任意選擇一個打包版本的原始碼

WINDOWS下用VSCODE除錯PHP7原始碼4.PHP7- SDK

我的開發機是64位,因為是編譯PHP7所以選擇了64位的deps-7.1-vc14-x64(擴充依賴函式庫包),建立php-sdk-binary-tools資料夾,將php-sdk-binary-tools-xxx.zip解壓縮至這個資料夾中,建立deps-vc14-x64資料夾,也將deps-7.1-vc14-x64.7z解壓縮至這個資料夾。

同時將php-sdk-binary-tools中的bin路徑加入WINDOWS系統變數PATH。 deps-7.1-vc14-x64本文暫時用不上,不過你也可以先下載下來,因為編譯自帶的一些擴展所依賴的庫和頭文件都包含在裡面,當你要編譯自帶擴展的時候可以用上:)。

WINDOWS下用VSCODE除錯PHP7原始碼

2.編譯原始碼

#安裝VS後,執行在開始功能表裡的Visual Studio 2017資料夾下的x64 Native Tools Command Prompt for VS 2017

WINDOWS下用VSCODE除錯PHP7原始碼

#運行後,進入PHP7原始碼目錄

##1.執行buildconf.bat產生WIN下的configure檔(configure.js)WINDOWS下用VSCODE除錯PHP7原始碼

2.可以執行configure.bat --help查看支援的編譯參數

3.執行configure.bat --disable-all --enable- cli --enable-debug(為了示範簡單編譯,可以自行加入參數)

4.執行nmake指令開始編譯

以本機的配置,編譯完成後的執行檔在來源程式碼目錄中的x64/Debug_TS下,後面就可以準備開始偵錯了。

3.使用VSCODE調試

調試方式可以分2種,一種是附加進程調試,一種是運行啟動調試,兩種方式都會介紹,先介紹運行啟動調試。

先建立一個用於測試的php的原始碼文件,我會建立在原始碼目錄下的x64/Debug_TS裡。

WINDOWS下用VSCODE除錯PHP7原始碼

接著選擇選單偵錯->開啟配置,並選擇C (Windows)

最後將設定檔修改如下所示WINDOWS下用VSCODE除錯PHP7原始碼

我們之前編譯了PHP SAPI的cli,我們打開sapi/cli/php_cli.c源文件,定位到1197行的main函數內打上斷點。 WINDOWS下用VSCODE除錯PHP7原始碼

接著我們到VS的DEBUG控制面板運行偵錯即可。 WINDOWS下用VSCODE除錯PHP7原始碼

WINDOWS下用VSCODE除錯PHP7原始碼

隨後即可看到斷點命中。

附加進程偵錯配置也是大同小異,我們點選選單選項偵錯->開啟配置,並選擇新增配置,在彈出來的選擇清單中選擇C/C (Windows) AttachWINDOWS下用VSCODE除錯PHP7原始碼

最後的設定檔如下:WINDOWS下用VSCODE除錯PHP7原始碼

WINDOWS下用VSCODE除錯PHP7原始碼我們先用PHP -S啟動一個內建伺服器(這個php一定要是你編譯產生的php.exe檔),來方便示範附加程式偵錯,我啟動的位置是在我們之前建立的test. php檔案所在的目錄下。

WINDOWS下用VSCODE除錯PHP7原始碼存取效果如下:

WINDOWS下用VSCODE除錯PHP7原始碼

啟動偵錯的方式一樣,在VSCODE的偵錯面板裡面選擇(Windows) Attach運行即可。

WINDOWS下用VSCODE除錯PHP7原始碼

然後在彈出來的進程清單中選擇PHP進程後開始進入偵錯狀態。

WINDOWS下用VSCODE除錯PHP7原始碼我們test.php中使用了array_push函數,我們這次到這個函數的實作中斷點,打開ext/standard/array.c,定位到2540行,打上斷點。

WINDOWS下用VSCODE除錯PHP7原始碼接著在瀏覽器中造訪http://127.0.0.1:8080/test.php 即可觸發斷點。

WINDOWS下用VSCODE除錯PHP7原始碼4.最後

本文的偵錯方式也可以作為擴充開發的偵錯方式,當然,同樣的設定思路也適用於宇宙IDE Visual Studio ,我在WINDOWS下配置VSCODE調試PHP源代碼的思路也適用於其它平台(Mac/Linux......)。如果你有興趣在Visual Studio中調試PHP原始碼,不如以本文為思路嘗試著自己思考動手來試試~

以上是WINDOWS下用VSCODE除錯PHP7原始碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Visual Studio:探索定價和許可選項Visual Studio:探索定價和許可選項Apr 13, 2025 am 12:03 AM

VisualStudio提供三種版本:Community免費版適用於個人和小型團隊,Professional付費版適合專業開發者和中小型團隊,Enterprise旗艦版面向大型企業和復雜項目。

Visual Studio的價值:權衡成本與其收益Visual Studio的價值:權衡成本與其收益Apr 12, 2025 am 12:06 AM

VisualStudio在.NET开发中价值高,因其功能强大且全面。尽管成本和资源消耗较高,但其带来的效率提升和开发体验改善显著。对于个人开发者和小型团队,Community版是理想选择;大型企业则适合Professional或Enterprise版。

Visual Studio的可用性:哪些版本是免費的?Visual Studio的可用性:哪些版本是免費的?Apr 10, 2025 am 09:44 AM

VisualStudio的免費版本包括VisualStudioCommunity和VisualStudioCode。 1.VisualStudioCommunity適用於個人開發者、開源項目和小型團隊,功能強大,適合個人項目和學習編程。 2.VisualStudioCode是一個輕量級的代碼編輯器,支持多種編程語言和擴展,啟動速度快,資源佔用少,適合需要靈活性和可擴展性的開發者。

如何為Windows 8安裝Visual Studio?如何為Windows 8安裝Visual Studio?Apr 09, 2025 am 12:19 AM

在Windows8上安裝VisualStudio的步驟如下:1.從微軟官方網站下載VisualStudioCommunity2019安裝包。 2.運行安裝程序並選擇所需組件。 3.完成安裝後即可使用。注意選擇與Windows8兼容的組件,並確保有足夠的磁盤空間和管理員權限。

我的計算機可以運行與代碼嗎?我的計算機可以運行與代碼嗎?Apr 08, 2025 am 12:16 AM

VSCode可以在大多數現代電腦上運行,只要滿足基本系統要求:1.操作系統:Windows7及以上,macOS10.9及以上,Linux;2.處理器:1.6GHz或更快;3.內存:至少2GBRAM(推薦4GB或更高);4.存儲空間:至少200MB可用空間。通過優化設置和減少擴展使用,可以在低配置電腦上獲得流暢的使用體驗。

如何使程序與Windows 8兼容?如何使程序與Windows 8兼容?Apr 07, 2025 am 12:09 AM

要讓程序在Windows8上順暢運行,需採取以下步驟:1.使用兼容性模式,通過代碼檢測並啟用該模式。 2.調整API調用,根據Windows版本選擇適當的API。 3.進行性能優化,盡量避免使用兼容性模式,優化API調用並使用通用控件。

VS代碼在Windows 8上有效嗎?VS代碼在Windows 8上有效嗎?Apr 06, 2025 am 12:13 AM

Yes,VSCodeiscompatiblewithWindows8.1)DownloadtheinstallerfromtheVSCodewebsiteandensurethelatest.NETFrameworkisinstalled.2)Installextensionsusingthecommandline,notingsomemayloadslower.3)Manageperformancebyclosingunnecessaryextensions,usinglightweightt

VS代碼和Visual Studio有什麼區別?VS代碼和Visual Studio有什麼區別?Apr 05, 2025 am 12:07 AM

VSCode是輕量級代碼編輯器,適用於多種語言和擴展;VisualStudio是功能強大的IDE,主要用於.NET開發。 1.VSCode基於Electron,支持跨平台,使用Monaco編輯器。 2.VisualStudio使用微軟自主技術棧,集成調試和編譯器。 3.VSCode適合簡單任務,VisualStudio適合大型項目。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器