位置: 编程技术 - 正文
推荐整理分享如何使用GDB调试PHP程序(gdb调试工具的使用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:如何使用gdb调试程序,如何使用gdb调试程序,如何使用gdb调试段错误,如何gdb调试动态启动的进程,如何使用gdb调试段错误,如何使用gdb调试ndpi reader源码,如何使用gdb调试程序错误,如何使用gdb调试段错误,内容如对您有帮助,希望把文章链接给更多的朋友!
一般来说,GDB主要完成下面四个方面的功能:
(1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 (2)可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) (3)当程序被停住时,可以检查此时你的程序中所发生的事。 (4)动态的改变你程序的执行环境。
1、简介
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端。
2、调试C/C++程序
直接上代码了
编译
1
g++ k.cpp -g -Wall -Werror -o main
开始调试
设置断点 break linenumber
设置观察点 watch var
可以看到是while那里,导致n越界了,fix
一些快捷命令
l ? listp ? print print {variable}c ? continues ? stepb - break break line_number/break [file_name]:line_number/break [file_name]:func_namer - runset <var> = <value>watch <var>
ENTER: pressing enter key would execute the previously executed command again.
c/n/s的区别
c or continue: Debugger will continue executing until the next break point.n or next: Debugger will execute the next line as single instruction.s or step: Same as next, but does not treats function as a single instruction, instead goes into the function and executes it line by line
3、调试PHP程序
PHP代码
开始调试,加上断点
加几个断点测试一下 syntax:break [file_name]:func_name,这里大致可以看一下 echo print等不是函数了
然后开始调试
我们还可以使用内置的gdbinit来调试
查看当前堆栈,PHP内核的执行过程
查看代码段
继续执行
到了execute_internal ,可以查看一下当前函数的一个状态
查看当前hashtable
继续执行输出c之后,回车即可,同样可以看到in_array的执行信息
还可以加一下监控watch、设置一些调试变量set 等等
其他的调试工具还有 strace 查看系统调用、ltrace 查看类库的调用、vld查看opcode。
以上内容是小编给大家分享的关于如何使用GDB调试PHP程序的全部内容,希望大家喜欢。
UPUPW 更新 位 Apache 系列 PHP 7.0 正式版 UPUPWPHP特点UPUPWPHP环境集成包Apache最新版全程采用Discuz!X2.5phpwind9.0dedecms5.7wordpress3.5.1等程序的UTF8版作为PHP环境的测试对象进行开发,完美运行以上程序!
thinkPHP中create方法与令牌验证实例浅析 本文实例讲述了thinkPHP中create方法与令牌验证。分享给大家供大家参考,具体如下:thinkPHP的create方法与令牌验证主要是涉及表单的安全性。代码如下:p
微信支付PHP SDK之微信公众号支付代码详解 这里假设你已经申请完微信支付1.微信后台配置如图我们先进行测试,所以先把测试授权目录和测试白名单添加上。测试授权目录是你要发起微信请求的
标签: gdb调试工具的使用
本文链接地址:https://www.jiuchutong.com/biancheng/276275.html 转载请保留说明!上一篇:PHP MPDF中文乱码的解决方式(php中文乱码解决)
下一篇:UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
友情链接: 武汉网站建设