I've been using NetBeans as the XDebug interactive debugging client. But seems like it only supports attaching debuggers to scripts that are invoked via Firefox. I want to step through the request parse script when it's invoked via cURL.
roan
问问题
1624 次
2 回答
2
我想出了答案。首先,我通过右键单击 netbeans 中的 wordpress 项目并选择“调试”来附加一个调试器。这将在 url 中使用“XDEBUG_SESSION_START=netbeans-xdebug”参数在 Firefox 中打开博客(例如“ http://localhost/wordpress/?XDEBUG_SESSION_START=netbeans-xdebug ”)。
然后我从命令行调用 cURL,确保使用名称/值 XDEBUG_SESSION/netbeans-xdebug 设置一个 cookie:
>curl "http://localhost/wordpress/wp-app.php/posts" -X POST -H "Content-type: application/atom+xml" -v -L -k -u admin:password --data @post_atom_entry_bad.xml -o post_bad_response.txt -b XDEBUG_SESSION=netbeans-xdebug
* About to connect() to localhost port 80 (#0)
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 80 (#0)
* Server auth using Basic with user 'admin'
> POST /wordpress/wp-app.php/posts HTTP/1.1
> Authorization: Basic YWRtaW46d2Fuc3Vp
> User-Agent: curl/7.19.1 (i586-pc-mingw32msvc) libcurl/7.19.1 OpenSSL/0.9.8i zlib/1.2.3
> Host: localhost
> Accept: */*
> Cookie: XDEBUG_SESSION=netbeans-xdebug
> Content-type: application/atom+xml
> Content-Length: 302
>
} [data not shown]
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 302 0 0 0 302 0 74 --:--:-- 0:00:04 --:--:-- 0
此时 cURL 在我在 wp-app.php 的第 283 行设置的断点处停止,AtomParser->handle_request(),我可以单步执行代码。
单击 F5(继续)后,服务器会将响应发送回 cURL:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 302 0 0 0 302 0 2 --:--:-- 0:02:17 --:--:-- 0< HTTP/1.1 400 Bad Request
< Date: Mon, 15 Dec 2008 17:47:06 GMT
< Server: Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6
< X-Powered-By: PHP/5.2.6
< Content-Length: 0
< Connection: close
< Content-Type: text/plain
<
100 302 0 0 0 302 0 2 --:--:-- 0:02:18 --:--:-- 0* Closing connection #0
>
完毕。从记事本++等其他交互式调试客户端获取示例会很棒。
于 2008-12-15T17:53:28.413 回答
1
相关 XDebug 文档:http ://www.xdebug.org/docs/remote#browser_session
于 2008-12-15T18:00:28.493 回答