分类目录归档:开发工具

XDEBUG远程调试原理分析

xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序。当PHP程序被暂停的时候,xdebug可以获取到程序的相关信息,比如变量的值等。xdebug也可以修改一个变量的值,然后再恢复暂停的程序,让其继续运行。

 

xdebug配合IDE进行可视化调试的过程(类似于VisualStudio单步调试)被称为“远程调试”,是因为调试时有一个Server(xdebug)和一个Client(IDE),所以在调试的时候,被调试的PHP程序和调试PHP程序的IDE可以不在同一台电脑上。

 

xdebug在进行远程调试的时候扮演一个Server的角色,它会在一个指定的端口(默认是9000)等待IDE的连接。目前有2种通信的协议,GDB和DBGp,其中DBGp是DBG的取代协议。IDE在执行调试的时候,给xdebug发送需要执行的命令,xdebug接受到命令后执行,然后将执行的情况和获得的PHP程序运行信息返回给IDE。现在很多IDE都实现了与xdebug通信的协议,比如Eclipse PDT。

 

Xdebug远程调试有2种方式:

1 req:在PHP程序开始执行的时候,xdebug与IDE建立连接。

  • jit:在PHP程序执行到断点处或者遇到Error的时候,xdebug才与IDE建立连接。

 

开启xdebug远程调试需要通过GET, POST或是cookie的方式传入一个XDEBUG_SESSION_START变量,XDEBUG_SESSION_START变量的值代表一个session的名称。通过这种形式,xdebug可以分辨出不同的session。如果要结束一个session可以通过同样的形式传入一个XDEBUG_SESSION_STOP。

转自:http://www.cnblogs.com/gpcuster/archive/2009/05/29/1491836.html

php使用Xdebug进行调试

个人认为,对有有经验的程序员,使用echo、print_r()、print_f()、var_dump()等函数足以调试php代码,如果你不喜欢这样的话,xdebug就是一个非常好的php调试工具。

下面来说说安装教程:

1.首先下载相应的php_xdebug.dll,下载地址:

http://www.xdebug.org/download.php

2.将下载文件复制到你的php下的ext目录里。

3.编辑php.ini文件,加入下面信息:

[Xdebug]

zend_extension=D:\xampp\php\ext\php_xdebug.dll   (Win)

xdebug.profiler_enable=on

xdebug.trace_output_dir="../Projects/xdebug"

xdebug.profiler_output_dir="../Projects/xdebug"

后面的目录“../Projects/xdebug”为你想要放置Xdebug输出的数据文件的目录,可自由设置。

 

参数参考设置:

  ;自动打开“监测函数调用过程”的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。

      xdebug.auto_trace=on

     ;开启异常跟踪

    xdebug.show_exception_trace = On

  ;打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。

      xdebug.collect_params=on

  ;打开收集“函数返回值”的功能。将函数的返回值列入函数过程调用的监测信息中。此配置项的默认值为off。

      xdebug.collect_return=on

      ;收集变量
      xdebug.collect_vars = On

   ;函数迭代的深度 

      xdebug.max_nesting_level=100 

      ;设定函数调用监测信息的输出文件的路径。

  xdebug.trace_output_dir="d:\Temp"

 

  ;打开效能监测器。

      xdebug.profiler_enable=on

      ;设定效能监测信息输出文件的路径。

  xdebug.profiler_output_dir="d:\Temp"

       

      ;显示默认的错误信息

       xdebug.default_enable=on

  ;是否调试

  xdebug.remote_enable=on

      ;开启远程调试自动启动
      xdebug.remote_autostart = On

  xdebug.remote_host=localhost

  ;调试端口

      xdebug.remote_port=9000

  ;选择协议:GDB、dbgp

       xdebug.remote_handler=dbgp

      ;调试模式
   ;Xdebug远程调试有2种方式:
    ;    req:在PHP程序开始执行的时候,xdebug与IDE建立连接。
    ;    jit:在PHP程序执行到断点处或者遇到Error的时候,xdebug才与IDE建立连接。
    xdebug.remote_mode=req

 

至此,安装完成,可以通过<?php phpinfo();?>查看:
转自:http://www.phpddt.com/php/xdebug.html

sublime配置全攻略


转自:http://cloudbbs.org/forum.php?mod=viewthread&tid=3620









大家好,今天给大家分享一款编辑器:sublime text2

    我用过很多编辑器,

EditPlus、EmEditor、Notepad++、Notepad2、UltraEdit、Editra、Vim,还有包括netbeans , zendstudio, dreamweaver 等。 最后我遇见了sublime text。  sublime是我见过的最好的编辑器,大型IDE能实现的功能, 用sublime装上相应插件,都能实现。 它是一个小型编辑器, 运行速度很快。现在是鼓起勇气换掉你以前编辑器的时候了。如果你以前没有听说过sublime, 可以看看这个介绍视频:http://v.youku.com/v_show/id_XMzU5NzQ5ODgw.html


  sublime本身功能有限,我们需要装上一些插件使其变得强大。sublime在各个操作系统下都可以运行,但在linux下运行需要注意中文输入的问题。 下面我主要介绍一下常用插件、配置的建议以及在linux下运行的注意事项。


  一,常用插件


       1,package control。 我们用sublime几乎都会首先安装这个插件,这个插件是管理插件的功能,先安装它,再安装其他插件就方便了。  安装方法:

       点击sublime的菜单栏 view->show console ;现在打开了控制台, 这个控制台有上下两栏, 上面一栏会实时显示sublime执行了什么插件,输出执行结果, 如果你安装的某个插件不能正常运行,应该先在这里看看有没有报错。下面栏是一个输入框,可以运行python代码。我们输入下面的代码点击回车运行, 就能安装好package control了。

       


  1. import urllib2,os;pf=’Package Control.sublime-package’;ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),’wb’).write(urllib2.urlopen(‘http://sublime.wbond.net/’+pf.replace(‘ ‘,’%20’)).read())


复制代码


      

       然后我们按住 ctrl+shift+p。此时会输出一个输入框, 输入install。  选择package contrl: install package 回车 ,需要稍定一会儿,右下角状态栏会显示正在连接的提示文字。 使用sublime时注意看右下角状态栏,很多插件的提示信息都显示在这里,这个状态栏很小,初次使用的人都有可能没有注意到它。

    

      QQ截图20120630134759.png 


   稍等一会儿后,它会出现一个插件列表, 你也可以在输入框中输入文字进行搜索插件。 搜索到自己想安装的插件,再选择它,回车。 就自动给你安装好了。


  如果要卸载插件, ctrl+shift+p 输入 remove, 选择package control:remove package 然后再选择已安装的插件, 回车即可卸载。


   如果package control 安装插件时失败了, 我们可以采用手动安装的方式, 在google上去搜索插件, 下载插件的源代码。在sublime的菜单栏点击 preferences->Browse package..  此时会打开插件目录。然后把你下载的插件源代码复制进去就可以了。


  ctrl+shift+p 打开的输入框面板是什么? 英文叫做 “Anything panel” ,任何操作都可以在这个面板里面完成。我暂且翻译为“万能面板”。 打开万能面板有几种方式。  

  ctrl+shift+p 打开时,我们需要在面板中输入一个命令,然后执行命令。所有菜单栏能操作事都可以在这里输入命令进行操作。

  ctrl+p 打开时,能快速查找文件。

  ctrl+r 打开时, 能查找当前文件中的函数。

  ctrl+g 打开时,能跳转到指定行。


  大家开始接触sublime时对它的环境还不是很熟悉,所有我在这里说得有点多, 简单总结一下前面说的。


  控制台的作用: 可以在这里执行python代码,和查看一些执行结果,如果插件运行不正常,可以在这里看看有没有报错。

  右下角状态栏: 很多提示信息都会显示在那里,注意经常查看。

  万能面板:所有的操作都可以在这里进行,又可以在这里输入命令,又可以在这里查找文件,也可以在这里查找函数等等。

  安装插件的方式:除了package control 安装还可以手动安装。

2,ctags。 这个插件能跨文件跳转,跳转到指定函数声明的地方。 使用package control 搜索ctags 进行安装(安装ctags插件就可以了, 还有一个 CTags for PHP 插件没什么用)。注意安装好插件后要需要安装ctags命令。window 下载 ctags.exe  http://vdisk.weibo.com/s/7QZd7 。
将ctags.exe文件放在一个环境变量能访问到的地方。打开cmd, 输入ctags,如果有这个命令,证明成功了。 ubuntu下安装运行命令:sudo apt-get install exuberant-ctags 。 

    然后在sublime项目文件夹右键, 会出现Ctag:Rebuild Tags 的菜单。点击它,然后会生成.tags的文件。

   2.png 


然后在你代码中, 光标放在某个函数上, 点击ctrl+shift+鼠标左键 就可以跳转到函数声明的地方。

3, sublimecodeintel 代码提示。 sublime默认的代码提示只能提示系统函数,用户自己创建的函数、类不能提示。 如果想要提示自己建立的函数。 可以安装sublimecodeintel插件。
3.png 

sublimecodeintel 安装后需要配置,文件:插件目录/.codeintel/config 中 增加


  1. “PHP”: {

  2.         “php”: ‘D:SaeServerphpphp.exe’,

  3.         “phpExtraPaths”: [‘D:SaeServerphpstdlib’],

  4.         “phpConfigFile”: ‘D:SaeServerapachephp.ini’

  5.     },


复制代码




配置了php执行文件的地址, php的配置文件地址, phpExtraPaths 是额外需要代码提示的类库,除了当前项目下的PHP代码可以提示外 phpExtraPaths中定义的目录下的PHP代码也能提示。  D:SaeServerphpstdlib 是SaeServer中 SAE本地模拟文件的目录, 所以配置后不管在哪儿 都能有SAE代码的提示。


  安装sublimecodeintel后, 按alt+鼠标左键也能和ctags一样跳转到函数声明的地方。 但是如果有两个文件声明了同样名称的函数, sublimecodeintel只会跳转到第一个找到的函数, 而ctags会让你选择要跳转到哪个文件。所以我们一般还是用ctags的跳转功能。

4,语法提示。 我们需要在写代码的时候如果有语法错误,能立即提示我们, 可以安装这两个插件:sublimelint 和Phpcs , sublimeint 需要系统有php命令。 所以需要设置好php的环境变量。 sublimelint的语法错误提示是显示在状态栏上面的,所以在编写程序的时候注意时常看看状态栏。 而Phpcs的语法错误提示是在我们保存文件时弹出万能面板显示错误,sublimelint的错误提示实时但不明显。
Phpcs的错误提示不是实时的,但很明显。 因此我们一般这两个插件都要安装。  Phpcs除了代码提示的共,还有其他功能,但是我暂时没有弄明白其他功能怎么用, 大家可以去研究一下,如果知道怎么用了再告诉我一下。

5,goto document。 这个插件能帮助我们快速查看手册。 比如我们在写php代码时, 突然忘记了某个函数怎么用了,将鼠标放在这个函数上,然后按F1,它能快速打开PHP手册中说明这个函数用法的地方。 

    安装好 goto document插件后我们再配置快捷键F1 跳转到文档。 打开sublime的菜单栏Preferences->key bindings -User  设置快捷键:


  1. [

  2.     { “keys”: [“f1”], “command”: “goto_documentation” }

  3. ]


复制代码


这样设置后, 按F1就能跳转到文档了。

6,function name display。 这个插件可以在状态栏显示出当前光标处于哪个函数中。

7,GBK Encoding Support 。 sublime本身不支持GBK编码, 可以安装这个插件让它支持。

8,SVN插件。windows下可以安装Tortoise和 Tortoisesvn的客户端。然后在sublime中在目录或文件右键都可以提交svn了。 在ubuntu下可以安装rabbitvcs 结合这个插件:https://github.com/kervin/sublime-svn/downloads 实现同样的功能。

9,gist。我们建立html文件时,做有些相同的代码。 这时候我们喜欢能有一个代码模板, 不能写重复相同的代码, gits插件能实现代码模板的功能。 它能见我们自己创建的代码模板,代码片段保持在github中的gist下。http://lucifr.com/2012/03/07/sub
… al-snippet-manager/
 这里介绍了详细的用法。

10,代码注释格式化。

additional PHP snippet插件能提示phpdocument格式的代码
4.png 


还能快速输出开源协议, 输入php- 会有提示
5.png 


安装DocBlockr 插件,能形成注释块。不用每次敲注释的斜杠或星号。

11,成对匹配的增强。 像这些符号是成对的:花括号{}, 中括号[],括号:() ,引号“” 等。 这些符号当我们鼠标放在开始符号的位置的时候, 希望能明显看到结尾符号在哪儿sublime默认是下划线,很不明显, 想要明显一点,可以安装插件  BracketHighlighter。


12,格式化PHP代码。  安装 php-beautifier 插件,使用php-beautifier还需要安装 PHP Beutifier的pear包:

pear install PHP_Beautifier

安装好后, 打开PHP文件,ctrl+alt+f 就能为你自动格式化代码。




 


 

 



沙发

 发表于
2012-6-30 16:44:15
 |只看该作者



本帖最后由 luofei614 于 2012-7-3 11:39 编辑

13,Xdebug。  可以安装xdebug插件,做代码调试功能。 这是大型IDE都有的功能, 小型编辑器很少能做到,但是sublime却又相应的插件能实现xdebug的功能。
screenshot.png 


你的PHP需要安装xdebug扩展。使用时需要在项目目录下建立一个.sublime-project文件


  1. {

  2.     “folders”:

  3.     [

  4.         {

  5.             “path”: “D:ysdysdv8”

  6.         },

  7.     ],



  8.     “settings”: {

  9.         “xdebug”: { “url”: “http://yunshangdian.com” }

  10.     }

  11. }


复制代码


path配置项配置了程序所在路径。  

注意给程序设置断点。否则不能见效果。 详细用法见:https://github.com/Kindari/SublimeXdebug


你如果也要写前端代码, 还可以安装一些和html,js相关的插件。如 ZenCoding,jQuery,jQuery Mobile Snippets,jQuery Snippets pack等。


二,配置建议。



用户配置建议(打开菜单栏Preferences->Setting-user):


    {

    “color_scheme”: “Packages/Color Scheme – Default/Monokai.tmTheme”,

    “default_line_ending”: “unix”,

    “detect_slow_plugins”: false,

    “font_face”: “Microsoft YaHei”,

    “font_size”: 10.0,

    “auto_match_enabled”: false,

    }


auto_match_enabled设置为false后可以关闭括号的自动完成。如我们输入左括号时sublime自动将右括号打出来了,往往我们不习惯这样, 此时你设置auto_match_enabled为false即可。


快捷键配置的建议(菜单栏Preferences->key bindings -User):



    [

    { “keys”: [“f1”], “command”: “goto_documentation” },

    { “keys”: [“alt+shift+`”], “command”: “clone_file” }

    ]


F1快速打开文档, 这个快捷键的设置前面已经说了。

alt+shift+` 快捷键又有什么用呢? 我们需要同一个文件在左右两栏同时打开。

7.png 


先按快捷键: alt+shift+2 。 此时会出现左右两栏的布局。


再按alt+shift+`(`键是tab键上面个键), 此时会复制一份当前文件, 再把新复制的那份文件拖动到右栏。 这样就实现了同一文件左右两栏同时打开了。


切换回一栏布局,按 alt+shift+1


颜色配置建议:


sublime对无效(invalid)的颜色提示 往往会提示错误。颜色很难看。 可以去掉对invalid的颜色提示。

插件目录下Color Scheme – DefaultMonokai.tmTheme文件中, 删除


  1. <dict>

  2.     <key>name</key>

  3.     <string>Invalid</string>

  4.     <key>scope</key>

  5.     <string>invalid</string>

  6.     <key>settings</key>

  7.     <dict>

  8.     <key>background</key>

  9.     <string>#F92672</string>

  10.     <key>fontStyle</key>

  11.     <string></string>

  12.     <key>foreground</key>

  13.     <string>#F8F8F0</string>

  14.     </dict>

  15.     </dict>


复制代码









成对匹配默认是绿色,有点难看,


插件目录下Color Scheme – DefaultMonokai.tmTheme文件中Class name 键中的:

改为:


  1. <dict>

  2.     <key>name</key>

  3.     <string>Class name</string>

  4.     <key>scope</key>

  5.     <string>entity.name.class</string>

  6.     <key>settings</key>

  7.     <dict>

  8.     <key>background</key>

  9.     <string>#F92672</string>

  10.     <key>fontStyle</key>

  11.     <string></string>

  12.     <key>foreground</key>

  13.     <string>#F8F8F0</string>

  14.     </dict>

  15.     </dict>


复制代码






三,在linux下使用。


    linux下使用时,中文不能输入的问题, 使用scim输入法方式可以解决。具体解决方法:http://www.haogongju.net/art/1312281

  虽然scim能让我们输入中文后, 但是也不是很完美,有候选词不跟随的问题, sublime失焦后候选词会消失的问题。候选词消失的问题,可以把sublime独立到一个单独的工作区中来暂时解决这个问题。


sublime之xdebug浏览器插件


1.chrome  xdebug.helper

1.1.安装xdebug.helper

1.2.配置IDEkey选择Other,后面输入sublime.xdebug

1.3.Domain filter:可以输入 你要调试的站点的域名,不输入默认对所有站点显示调试按钮

2.Firefox        The easiest Xdebug

2.1.安装The easiest Xdebug

2.2.点击“更多”或选项,进入设置页面

2.3.IDE key栏输入sublime.xdebug