環境
lsb_release -a
lsb version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
distributor id: centos
description: centos release 5.6 (final)
release: 5.6
codename: final
php: 5.2
gdb: gnu gdb (gdb) red hat enterprise linux (7.0.1-37.el5_7.1)
svn co php-src-5.2
./buildconf
./configure --disable-all
make
開始gdb除錯
gdb(gdb) file sapi/cli/php
(gdb)run test.php #這裡的test.php是隨便編寫的乙個php檔案
(gdb) list
612 /* }}} */
613614 /* {{{ main
615 */
616 #ifdef php_cli_win32_no_console
617 int winapi winmain(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int nshowcmd)
618 #else
619 int main(int argc, char *argv)
620 #endif
621 {
(gdb) b 617
breakpoint 1 at 0x81c18f7: file /root/xiaoq/php-src-5.2/sapi/cli/php_cli.c, line 617.
(gdb) r
starting program: /root/xiaoq/php-src-5.2/sapi/cli/php test.php
[thread debugging using libthread_db enabled]
breakpoint 1, main (argc=2, argv=0xbfffea84) at /root/xiaoq/php-src-5.2/sapi/cli/php_cli.c:621
621 {
(gdb) n
628 int orig_optind=php_optind;
(gdb)
622 volatile int exit_status = success;
不會gdb的稍微學下,我也下的手冊剛看的,可以開始php原始碼之旅了,下章分析下php的大體執行流程和關鍵的原始碼位置,我也是初學者,不對之處多多指教!!!
Hadoop原始碼分析 第一章 Hadoop指令碼
詳細的內容放在附件中,以下列出大綱,以後會陸續有新的章節放出 第一章指令碼部分寫作大綱,包含以下主題 大綱 1.介紹的集群啟動過程並畫出執行序列圖,用一段文字對整體執行過程進行說明 2.說明集群啟動和停止的方式有哪幾種 start all.sh sop all.sh 和start dfs.sh st...
STL原始碼分析(第一章緒論)
本書使用的是sgi實現的版本,1.容器 containers 各種資料結構,如vector,list,deque,set,map,用來存放資料。stl容器是一種類模板 calss template 2.演算法 algorithm 各種常用演算法如sort search copy erase等。stl...
《Go程式語言》第一章 原始碼
fetch.go fetch 輸出從url獲取的內容 讀取響應的主體內容 body,err ioutil.readall resp.body 避免資源洩露 resp.body.close 處理讀取失敗情況 if err nil 列印 fmt.printf s body 執行命令 go run fet...