paip.php的调试--attilax总结

本文介绍了使用XDEBUGGER和zenddebugger进行PHP调试的方法,包括配置IDE、启动调试会话及远程调试过程。对于PHP WEB项目的调试尤其有用。


paip.php的调试--attilax总结

php的调试可用PDT与XDEBUGGER,或者与zend debugger来。。如果是php WEB项目,只能

进行远程调试,XDEBUGGER/zend debugge 加载起来后,把PHP的信息截获,然后连接PDT的

9000/10000端口,把内部信息发往ECLIPSE PDT了。。

---------1.使用xdebugger------------
a.在PHP。INI配置xdebugger,然后PHPINFO()测试,确定可以看到XDEBUGGER的配置。

。将其REMOTE配置全部打开..

b.设定multisession,这点很重要::: 在eclipse中的PDT插件,window>设定》PHP》DEBUG,

打开PHP DEBUG设置页, php debugger选择XDEBUG,然后configure》installed

debuggers>xdebugger>configure >xdebug/dbgp setting , 一定要选定“use

multisession" ,这点很重要。默认端口9000一般不要改..

c.配置项目调试起动页:::然后在ECLIPSE图标栏,点DEBUG图标,open debug dialog> php

web page>配置为XDEBUG调试。。

d.进行调试。。在WEB开发中,只能进行远程调试。。本地调试仅仅对本地化PHP脚本而言。。

PDT不支持,直接在浏览器里输入URL,然后打断点,这样子是无法停止下来的,无法断点调试。。

这点和JAVA的远程调试不同..

e.只能用PDT打开调试IE窗口,可以看到MS http://localhost/t2.php?

XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13418867522671 ,有

XDEBUG_SESSION_START参数等...然后你再设置断点,再打入或者跳转到要测试的URL...


f.注意:::multisession设置非常重要,否则,你只能命中断点一次,就停止调试了。。设置了

multisession后,每次打开调试的PHP页面,,都会命中断点的.就和JAVA的远程调试差不多了...

---------------2.配置zend debugger进行远程调试----------

a.配置::
a.1. Add the following line to your php.ini file:
Linux and Mac OS X: zend_extension=<full_path_to_ZendDebugger.so>
Windows: zend_extension_ts=<full_path_to_ZendDebugger.dll>
Windows non-thread safe: zend_extension=<full_path_to_ZendDebugger.dll>

a.2. Add the following lines to your php.ini file:
zend_debugger.allow_hosts=<host_ip_addresses>
zend_debugger.expose_remotely=always

(*) hopst_ip_addresses are the IPs of the hosts which will be allowed to initiate

debug sessions

a.3. Copy the dummy.php file to your document root directory.

a.4. Restart your Web server.


b.在eclipse中的PDT插件,设置为zend debugger。

c.c.配置项目调试起动页::

d.d.进行调试。。也是需要要PDT打开调试窗口,不能直接窗口调试..URL ms:
http://localhost/t2.php?

debug_session_id=1000&start_debug=1&debug_start_session=1&debug_host=192.1

68.1.188%2C127.0.0.1&debug_no_cache=1341887571398&debug_port=10000&send

_sess_end=1&original_url=http://localhost/t2.php&debug_stop=1
它会把PDT使用的连接端口发往zend debugger...

03-12
### PAIP编程珠玑中的示例代码解释 PAIP(Paradigms of Artificial Intelligence Programming)是一本深入探讨人工智能编程范式的书籍,其中包含了大量 Lisp 编写的程序实例。这些例子不仅展示了如何实现特定的人工智能算法,还提供了关于良好软件工程实践的重要见解。 #### 示例:通用求解器框架 书中介绍了一个名为 `defun` 的宏来定义函数,在构建通用问题解决器时非常有用[^1]: ```lisp (defun solve (problem) "Find a solution to the given problem." (let ((solution nil)) ;; Attempt to find a solution using backtracking. (labels ((try-next-option () (when (not solution) (if (no-more-options-p ()) (return-from try-next-option nil) (let* ((option (next-option))) (cond ((goal-reached-p option) (setf solution option)) (t (push-state option) (solve problem) (pop-state)))))))) (try-next-option) solution))) ``` 这段代码实现了回溯法解决问题的一般模式。通过递归调用自身并尝试不同的选项直到找到解决方案为止。如果当前路径无法通向目标,则会恢复之前的状态继续探索其他可能性。 此方法能够有效地处理许多复杂的组合优化类问题,并且由于其灵活性可以很容易地适应各种具体应用场景下的需求变化。 #### 示例:自然语言理解模块 另一个重要的部分涉及到了自然语言处理技术的应用案例——基于语法分析树结构来进行语义解析: ```lisp (defun parse-sentence (sentence) "Parse SENTENCE into its constituent parts and build an interpretation tree." (multiple-value-bind (subject verb-object) (split sentence 'verb) `(sentence :subject ,(parse-noun-phrase subject) :action ,verb-object))) (defun parse-noun-phrase (np-string) "Interpret NP-STRING as either a simple noun or compound phrase." ...) ``` 上述片段演示了如何将输入字符串分割成主谓宾成分,并进一步解析名词短语的具体含义。这种层次化的表示方式有助于后续更高级别的推理操作以及对话管理等功能的设计与实现。 #### 示例:专家系统规则引擎 最后值得一提的是书中对于专家系统的讨论,特别是有关于事实库管理和匹配机制的部分: ```lisp (defstruct fact id pattern bindings) (defun match-patterns (pattern facts) "Return all FACTS that unify with PATTERN, along with their BINDINGS." ...) (defun add-fact (kb new-fact) "Add NEW-FACT to knowledge base KB after checking consistency against existing rules." ...) ``` 这里展示了一种简单而有效的知识表达形式及其相应的查询接口设计思路。通过对模式进行统一化计算从而快速定位符合条件的事实条目;而在更新数据库前则需确保新加入的信息不会引起逻辑矛盾等问题的发生。 以上仅是从《Programming Pearls》一书摘取的一些精彩片段,实际上该著作涵盖了更为广泛的内容领域和技术细节等待读者去发掘学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值