Linux下用Xdebug调试php

Linux下用Xdebug调试php

博客分类: php
PHPLinuxZendEclipseC#
为了调试PHP程序,安装一下xdebug.

官方网址: http://www.xdebug.org

首先下载xdebug2.1.0,在官方首页下载源代码,下载回来的文件名是:xdebug-2.1.0.tgz
xdebug的版本需与您的php版本相对应,由于偶的php是5.3.2,所以下载xdebug2.1.0

Xml代码  收藏代码
cd /your/download/path
tar zxvf xdebug-2.1.0.tgz
cd xdebug-2.1.0  

运行phpize
Xml代码  收藏代码
phpize  

     如果没有将phpize加入$PATH,则应该使用全路径

这里不需要--prefix,编译好之后直接把modules里的xdebug.so文件复制走即可。
Xml代码  收藏代码
./configure --enable-xdebug
--with-php-config=/usr/local/php/bin/php-config  

Xml代码  收藏代码
make  

把xdebug.so复制到了php安装目录,装php的时候指定了安装目录,所以复制到/usr/local/php/xdebug里。随便你复制到哪都行,只要你清楚知道。。。需要改下面一条命令的路径为你自己的。
Xml代码  收藏代码
cp modules/xdebug.so /usr/local/php/xdebug  

把下面这行添加到php.ini文件的最后。如果您定义过php.ini的存放位置,一定要找到位置哦,建议弄个phpinfo(),查看到php.ini文件的具体位置。我的位置是在:/usr/local/etc/php.ini 

添加下面内容:
Xml代码  收藏代码
[Xdebug]
zend_extension ="/usr/local/php5/xdebug/xdebug.so"
xdebug.profiler_enable=on
xdebug.trace_output_dir="/usr/local/php5/xdebug/"
xdebug.profiler_output_dir="/usr/local/php5/xdebug/"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
;xdebug.remote_host=localhost
xdebug.remote_port=9999  

 注意,如果您安装过zend optimizer 那么,注意您的php.ini文件中是否已存在zend_extension= ,如果已经存在,请注释掉,在zend_extension=前加上; ,示例:
;zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
这样,才可以正常安装运行好xdebug.

重启你的web服务器。
接下来打开phpinfo(),看看里面是否有xdebug的信息了。
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
     with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans

可能遇到的问题
1.Cannot find autoconf
/usr/local/php/bin/phpize
提示
Xml代码  收藏代码
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.  

源代码目录下也没有生成configure
需安装两个软件包
Xml代码  收藏代码
imake-1.0.2-3.i386.rpm
autoconf-2.59-12.noarch.rpm  

2.configure: error: Cannot find php-config
Xml代码  收藏代码
./configure --with-php-config=/usr/local/php/bin/php-config  

 # 这里如果直接执行./configure很有可能会报错
# "configure: error: Cannot find php-config. Please use --with-php-config=PATH",
# 你的配置文件位置可能不在这个目录,这个文件通常是在php安装目录的bin目录下的一个文件名叫做php-config或者php-config5的文件,实在找不到就find一下咯

  

时间: 2024-11-05 14:53:36

Linux下用Xdebug调试php的相关文章

Linux下的反调试技术

Linux下的反调试技术 2014年01月30日 ⁄ 综合 ⁄ 共 2669字 ⁄ 字号 小 中 大 ⁄ 评论关闭 转自  http://wangcong.org/blog/archives/310 如何防止自己的程序被调试器跟踪,这是一个很有趣的话题,也是反逆向工程中的一个重要话题.这里简单介绍一下Linux平台上的反调试技术. (本文主要参考:http://blog.txipinet.com/2006/10/05/37-tecnicas-anti-debugging-sencillas-pa

linux下多线程的调试

多线程调试的基本命令(均在gdb命令行使用): info threads ---- 显示当前可调试的所有线程.每一个线程都有自己的线程ID,显示结果中前面有*的表示当前调试的线程. eg: (gdb)info threads ID    Target ID 3     Thread 0x------(LWP 1235) 2    Thread 0x------(LWP 1234) *1    Thread 0x------(LWP 1233)    //当前活动的线程 最前面的数字1.2.3表示

linux下多进程的调试

linux下多进程的调试: (1)follow-fork-mode set follow-fork-mode [parent | child] ---- fork之后选择调试父进程还是子进程 (parent: fork之后继续调试父进程:child: fork之后调试父进程.默认的是fork之后调试父进程) set detach-on-fork [on | off] ---- 指示gdb在fork之后是否断开某个进程的调试,或交由gdb控制 (on: 断开调试follow-fork-mode指定

Linux下性能测量和调试诊断工具Systemtap

一.简介 SystemTap是一个诊断Linux系统性能或功能问题的开源软件.它使得对运行时的Linux系统进行诊断调式变得更容易.更简单.有了它,开发者或调试人员不再需要重编译.安装新内核.重启动等烦人的步骤. 为了诊断系统问题或性能,开发者或调试人员只需要写一些脚本,然后通过SystemTap提供的命令行接口就可以对正在运行的内核进行诊断调试,以前需要的修改或插入调试代码.重新编译内核.安装内核和重启动等这些琐碎的工作完全消除.目前该工具并不支持对用户态应用的诊断调试,但是它们在以后会被添加

在Linux下开发和调试STM32

因为最近需要做一些STM32的开发,而我大部分的其他开发都在Linux上,经常在Windows和Linux下切换感觉比较不方便,于是就研究了一下Linux下开发STM32的工具,顺便在这边做下记录. 使用的开发工具 软件平台: Eclipse Luna 下载:https://eclipse.org/downloads/packages/release/luna/sr2 用于安装System Workbench for STM32插件,建议下载Eclipse IDE for C/C++ Devel

linux下core文件调试方法(转载)

转自于:http://blog.csdn.net/fcryuuhou/article/details/8507775 在程序遇到段错误不寻常退出时,一般是访问内存出错.但是不会给出程序哪里出现的问题,这个时候就需要core文件来帮助调试. 内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关.若结果

Linux下使用GDB调试应用程序示例

GDB概述 ---- GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.所谓"寸有所长,尺有所短"就是这个道理. 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 2.可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式)

【Java】使用Eclipse进行远程调试,Linux下开启远程调试

原博地址:http://blog.csdn.net/dfdsggdgg/article/details/50730311 1.center下,在startup.sh文件首行中添加如下语句 declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"(不要换行,要在同一行) Ubu

三、Linux下编译与调试

gcc/g++编译器 对于.c格式的C文件,可以采用gcc或g++编译 对于 .cc..cpp格式的C++文件,应该采用g++进行编译 常用的选项: -c  表示编译源文件 -o  表示输出目标文件 -g  表示在目标文件中产生调试信息,用于gdb调试 -D<宏定义> 编译时将宏定义传入进去 -Wall  打开所有类型的警告. 1. gcc编译过程:预编译->编译->汇编->链接 当我们进行编译的时候,要使用一系列的工具,我们称之为工具链. 其中包括:预处理器,编译,汇编器a