转自:http://blog.csdn.net/a600423444/article/details/12720543
前言
开发中必不可少的环节就是调试,而调试的方式直接影响到开发效率和软件质量。
之前开发PHP扩展,一直不会DEBUG调试,每次调试都是重新编译、执行再运行PHP脚本看运行状况再调试。太痛苦、太影响效率了。也百度、谷歌了如何调试PHP扩展的问题,但回答的几乎都是GDB,可惜也不知道如何实际操作。
VS用的不多,很多功能也不知道干嘛的,前几天有位同事说可以用VS的“附加到进程”来调试PHP的扩展,我擦~突然感觉有救了。当然也是因为我对C的调试不熟悉导致的。
进入主题:
一、搭建Windows的PHP扩展开发环境
查看我的另一篇文章:http://blog.csdn.net/a600423444/article/details/8108993文章介绍的是PHP5.4的搭建方法,如果要更换为PHP5.5也大同小异,步骤一样。
二、配置调试环境
1.下载PHP_DEBUG_PACK文件
http://windows.php.net/download/#php-5.4选择时,注意必须与下载的PHP二进制版本相同,例如你在第一步搭建PHP开发环境时,选择的是VC9 x86 Non Thread Safe,那么DEBUG PACK就应该下载相同版本的DEBUG PACK。
2.引入符号文件
Debug pack压缩包里是所有PHP调试相关的符号文件(*.pdb),引入他们是调试的关键。
注意:只有在调试状态下,加载所有符号按钮才能点
工具-》选项-》调试-》符号-》将解压路径添加入符号位置

3.扩展开启DEBUG信息
项目-》属性-》链接器-》调试-》生成调试信息-》设置为“是”

编译生成Release版本DLL时,会生成vc110.pdb,将它也放入前面解压的PDB路径,为了统一命名格式,可以将其改名与扩展同名。此处我本机改的是“php_test.pdb”

至此配置已经完成了,接下来看如何使用调试。
三、附加到进程
1.写一段PHP脚本,并在终端运行且常驻进程。
[php] view
plaincopy
- while(1){
- echo confirm_test_compiled('11');
- sleep(4);
- }
此处,常驻并非必须的。只是我本地为测试方便。
2.添加断点位置
3.附加进程
调试-》附加到进程:选择上面1中执行PHP产生的进程。
现在,只需等待程序运行到断点位置即可看到调试信息:
Over.
以上就介绍了VS2013开发调试PHP扩展,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna