Liunx下對php內核的調試_全球報道
時間:2023-06-25 07:19:21
主要是對上一篇文章中php_again這道題的補充。
cd /usr/localwget https://www.php.net/distributions/php-8.2.2.tar.gztar -zxvf php-8.2.2.tar.gz && cd php-8.2.20x03編譯注意帶enable-debug
【資料圖】
apt-get install build-essential autoconf automake libtool libsqlite3-dev pkg-config libjpeg-dev libpng-dev libxml2-dev libbz2-dev libcurl4-gnutls-dev libssl-dev libffi-dev libwebp-dev libonig-dev libzip-dev./configure --prefix=/usr/local/php --sysconfdir=/etc/php/8.2 --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-webp --with-jpeg --with-mhash --enable-mbstring --with-imap-ssl --with-mysqli --enable-exif --with-ffi --with-zip --enable-sockets --with-pcre-jit --enable-fpm --with-pdo-mysql --enable-pcntl --enable-debugmake && make installcd /usr/binln -s /usr/local/php/bin/php php8.2cp /usr/local/php-8.2.2/php.ini-development /usr/local/php/lib/php.ini cp /etc/php/8.2/php-fpm.conf.default /etc/php/8.2/php-fpm.confcp /etc/php/8.2/php-fpm.d/www.conf.default /etc/php/8.2/php-fpm.d/www.conf0x04下載gdb工具apt-get updateapt install gdb0x05調試樣例調試php中 生成 system_id的兩個函數(zend_startup_system_id,zend_finalize_system_id),分別在 mian.c文件的第2237行和第2288行
cd /usr/local/php/bin#即php可執行文件目錄先在這兩處打斷點
接下來執行 run 一個php文件。
step 單步進入該函數。
n下一步
print var 打印變量
該函數運行完后,context的值是。(因為enable-debug了,所以NTS后還有一個debug,正常情況下是沒有的)
跳出該函數后,輸入 c進入下一個斷點。
同樣 step單步跳入。可以看到第二個 if語句是進去了,hooks的值為 "\x02"
接下來是個 for循環,一個都沒進去,所以 context的值沒有更新。最后 context的值是。
把 debug去掉放 python跑一下。
這下跑的結果是正確的。
0x06一些細節zend_compile_file和 compile_file是不一樣的。讓我們看看發生了什么。
watch zend_compile_file編譯時開啟 dtrace并且,環境變量中有 USE_ZEND_DTRACE時才會進入這個if 。 所以這個時候 zend_compile_file是等于 compile_file的。
在phar.c中還會改變一次。之后就會調用 zend_finalize_system_id.
額,源碼看不懂,就跟著看了下變量信息,主要簡單了解下如何使用gdb調試。
相關稿件
特斯拉FSD隱藏“埃隆模式”:900公里無提醒,并可雙手離開方向盤_世界熱聞
三人籃球U21國家聯賽邯鄲站 中國女隊擊敗美國女隊奪得今日冠軍
【美容護理】美容護理雙周刊:監管引導之下,家用美容儀市場潛力可觀
【儀器儀表】科學儀器行業動態:科學儀器政策持續加碼,國產研發屢克新高地-世界新要聞
【獨家焦點】【文體市場面面觀】鄉村賽事要平衡好“商味”和“村味”
下滑40%,出口額跌到7億歐元!德國,已經失去了俄羅斯市場?
用戶探尋式搜索策略分析及系統構建研究_關于用戶探尋式搜索策略分析及系統構建研究介紹
超越一個甲子的輪回 首試豐田皇冠SportCross-全球新要聞
基于EMP2 V3平臺/采用全新設計 全新DS 4將于7月13日正式上市-焦點訊息
教育頻道


