當前位置:首頁 » 編程語言 » gdb調試php

gdb調試php

發布時間: 2022-12-27 18:28:37

① 如何 gdb 調試php-fpm

1,安裝strace

[html] view plain
sudo apt-get install strace

2,查看php-fpm進程

[html] view plain
vagrant@vagrant-ubuntu-precise-64:~$ ps -ef | grep php-fpm
root 2105 1 0 04:02 ? 00:00:02 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 2105 0 04:02 ? 00:00:02 php-fpm: pool www
www-data 18481 2105 0 07:05 ? 00:00:01 php-fpm: pool www
www-data 18513 2105 0 07:06 ? 00:00:03 php-fpm: pool www
vagrant 19312 6379 0 10:14 pts/4 00:00:00 grep --color=auto php-fpm

3,調試進程輸出日誌到文件

[html] view plain
vagrant@vagrant-ubuntu-precise-64:~$ sudo strace -f -p 2105 -e trace=file -o /temp/trace.log
Process 2105 attached - interrupt to quit
Process 19349 attached
Process 19350 attached

4,查看日誌文件

[html] view plain
tail -f /temp/trace.log

② GDB 調試命令

(gdb) i r
(gdb) i r a # 查看所有寄存器(包括浮點、多媒體)
(gdb) i r esp
(gdb) i r pc

(gdb) x /wx 0x80040000 # 以16進制顯示指定地址處的數據
(gdb) x /8x esp+12
(gdb) x /16s 0x86468700 # 以字元串形式顯示指定地址處的數據
(gdb) x /24i 0x8048a51 # 以指令形式顯示指定地址處的數據(24條)

(gdb) set $v0 = 0x004000000

(gdb) set $epc = 0xbfc00000

(gdb) set {unsigned int}0x8048a51=0x0
(gdb) set (unsigned int )0x8048a54=0x55aa55aa

Usage: find <start> <end> <count> <value>

(gdb) b *0x80400000
(gdb) watch *(unsigned int *)0xbffff400==0x90909090

更多
https://www.cnblogs.com/wuyuegb2312/archive/2013/03/29/2987025.html

③ gdb調試命令是什麼

gdb調試命令如下:

1、啟動gdb

$gdb

這樣可以和gdb進行交互了。

2、啟動gdb,並且分屏顯示源代碼

$gdb -tui

這樣,使用了'-tui'選項,啟動可以直接將屏幕分成兩個部分,上面顯示源代碼,比用list方便多了。這時候使用上下方向鍵可以查看源代碼,想要命令行使用上下鍵就用[Ctrl]n和[Ctrl]p。

3、啟動gdb調試指定程序app

$gdb app

這樣就在啟動gdb之後直接載入了app可執行程序,需要注意的是,載入的app程序必須在編譯的時候有gdb調試選項,例如'gcc -g app app.c',注意,如果修改了程序的源代碼,但是沒有編譯,那麼在gdb中顯示的會是改動後的源代碼,但是運行的是改動前的程序,這樣會導致跟蹤錯亂的。

4、啟動程序之後,再用gdb調試

$gdb <program> <PID>

這里,<program>是程序的可執行文件名,<PID>是要調試程序的PID.如果你的程序是一個服務程序,那麼你可以指定這個服務程序運行時的進程ID。gdb會自動attach上去,並調試他。program應該在PATH環境變數中搜索得到。

5、啟動程序之後,再啟動gdb調試

$gdb <PID>

這里,程序是一個服務程序,那麼你可以指定這個服務程序運行時的進程ID,<PID>是要調試程序的PID.這樣gdb就附加到程序上了,但是現在還沒法查看源代碼,用file命令指明可執行文件就可以顯示源代碼了。

④ php高級工程師有什麼任職要求

php高級工程師任職要求有什麼呢?一起來了解一下吧。
1、熟悉unix環境編程,如多線程/多進程,新號、信號量、共享內存、消息隊列、文件系統等。
2、熟悉php的stream、sockets、posix、pcntl、libevent、inotify擴展;掌握zend引擎的執行原理,了解php內核中的zval、hashtable的實現、了解php擴展的開發。
3、掌握c/c++語言編程,可以寫出c/c++的程序。
4、掌握gdb調試c/c++、php程序。
5、了解linux集群、負載均衡、容災、數據同步。
6、了解hadoop、hive,storm等大數據分析系統。
7、三年以上php工程師工作經驗。
今天的分享就是這些啦,希望能給大家幫助喲!

⑤ gdb調試問題

提示什麼, 如果是同一個文件,一個能調試,另一個不能調試,最大的原因是許可權問題, 這個你用GDB載入的時候,按R 運行後,一般會有提示的。 另外也可能文件損壞了。。你最好再 編譯一下,如果是直接 attach進行的調試,則極有可能是許可權問題。

⑥ gdb 調試,求指教

1、ARM硬體內核嵌入能夠響應J-Link命令調試模塊(用戶修改需要額外燒錄程序);
2、調試程由ARM內嵌調試模塊執行響應Linuxgdb調試軟體(工具)所些稱gdbserver;
3、linux軟體都伺服器+用戶模式(明白直接忽略表述)Linuxgdb自軟體架構虛擬伺服器(圖GDB Server)其與博客gdbserver東東;
4、我認同些博客種說能說錯宏觀角度講ARM硬體內核嵌入調試模塊gdb服務稱gdbserver些道理給造必要誤解
******希望我解釋幫助

⑦ 如何使用GDB調試PHP程序

使用GDB調試PHP程序:

這個比較長沒辦法給你弄過來

jb51.net/article/76028.htm

⑧ 如何調試PHP的Core之獲取基本信息

首先, 讓生成一個供舉例子的Core文件: <?phpfunction recurse($num) { recurse(++$num);} recurse(0); 運行這個PHP文件: $ php test.phpSegmentation fault (core mped) 這個PHP因為無線遞歸, 會導致爆棧, 從而造成 segment fault而在PHP的當前工作目錄產生Coremp文件(如果你的系統沒有產生Coremp文件, 那請查詢ulimit的相關設置). 好, 現在, 讓刪除掉這個test.php, 忘掉上面的代碼, 我們現在僅有的是這個Core文件, 任務是, 找出這個Core產生的原因, 以及發生時候的狀態. 首先, 讓用gdb打開這個core文件: $ gdb php -c core.31656 會看到很多的信息, 首先讓我們注意這段: Core was generated by `php test.php'.Program terminated with signal 11, Segmentation fault.

熱點內容
給定一個演算法 發布:2024-05-19 17:50:08 瀏覽:863
戀愛生物種離線緩存 發布:2024-05-19 17:49:15 瀏覽:578
卡巴斯基伺服器如何連接外網更新 發布:2024-05-19 17:42:06 瀏覽:559
手機虛榮怎麼連接伺服器 發布:2024-05-19 17:41:47 瀏覽:729
linux修改保存文件 發布:2024-05-19 17:30:38 瀏覽:665
網路有你腳本 發布:2024-05-19 17:29:55 瀏覽:769
黎明我的世界伺服器 發布:2024-05-19 17:17:34 瀏覽:538
雷神g50如何設置安卓原生模式 發布:2024-05-19 16:50:04 瀏覽:120
c語言小數四捨五入 發布:2024-05-19 16:23:28 瀏覽:525
資料庫被注入攻擊 發布:2024-05-19 16:21:31 瀏覽:835