当前位置:首页 » 编程语言 » 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.

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:742
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372