You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by bu...@apache.org on 2019/10/30 03:40:58 UTC
svn commit: r1052146 - in /websites/staging/httpd/trunk/content: ./
dev/debugging.html
Author: buildbot
Date: Wed Oct 30 03:40:58 2019
New Revision: 1052146
Log:
Staging update by buildbot for httpd
Modified:
websites/staging/httpd/trunk/content/ (props changed)
websites/staging/httpd/trunk/content/dev/debugging.html
Propchange: websites/staging/httpd/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Oct 30 03:40:58 2019
@@ -1 +1 @@
-1869143
+1869144
Modified: websites/staging/httpd/trunk/content/dev/debugging.html
==============================================================================
--- websites/staging/httpd/trunk/content/dev/debugging.html (original)
+++ websites/staging/httpd/trunk/content/dev/debugging.html Wed Oct 30 03:40:58 2019
@@ -158,85 +158,83 @@ use gdb's attach command to debug the ch
shows the output of gdb run on a server executable (httpd) in the current
working directory and using the server root of <code>/usr/local/apache</code> :
<pre>
- % gdb httpd
+ % <font color="green">gdb httpd</font>
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for
details.
GDB 4.16.gnat.1.13 (sparc-sun-solaris2.5),
Copyright 1996 Free Software Foundation, Inc...
- (gdb) b ap_process_request
+ (gdb) <font color="green">b ap_process_request</font>
Breakpoint 1 at 0x49fb4: file http_request.c, line 1164.
- (gdb) run -X -d /usr/local/apache
- Starting program: /usr/local/apache/src/httpd -X -d /usr/local/apache</p>
-<div class="codehilite"><pre><span class="k">[at this point I make a request from another window]</span>
-
-<span class="na">Breakpoint 1, ap_process_request (r</span><span class="o">=</span><span class="s">0x95250) at http_request.c:1164</span>
-<span class="err">1164</span> <span class="err">if</span> <span class="err">(ap_extended_status)</span>
-<span class="err">(gdb)</span> <span class="err">s</span>
-<span class="err">1165</span>
-<span class="err">ap_time_process_request(r-&gt</span><span class="c">;connection-&gt;child_num,...</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="err">1167</span> <span class="err">process_request_internal(r)</span><span class="c">;</span>
-<span class="err">(gdb)</span> <span class="err">s</span>
-<span class="na">process_request_internal (r</span><span class="o">=</span><span class="s">0x95250) at http_request.c:1028</span>
-<span class="err">1028</span> <span class="err">if</span> <span class="err">(!r-&gt</span><span class="c">;proxyreq &amp;&amp; r-&gt;parsed_uri.path) {</span>
-<span class="err">(gdb)</span> <span class="err">s</span>
-<span class="na">1029 access_status</span> <span class="o">=</span> <span class="s">ap_unescape_url(r-&gt;parsed_uri.path);</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="err">1030</span> <span class="err">if</span> <span class="err">(access_status)</span> <span class="err">{</span>
-<span class="err">(gdb)</span> <span class="err">s</span>
-<span class="err">1036</span> <span class="err">ap_getparents(r-&gt</span><span class="c">;uri); /* OK...</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="na">1038 if ((access_status</span> <span class="o">=</span> <span class="s">location_walk(r))) {</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="na">1043 if ((access_status</span> <span class="o">=</span> <span class="s">ap_translate_name(r))) {</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="err">1048</span> <span class="err">if</span> <span class="err">(!r-&gt</span><span class="c">;proxyreq) {</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="na">1053 if (r-&gt;method_number</span> <span class="o">=</span><span class="s">= M_TRACE) {</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="err">1062</span> <span class="err">if</span> <span class="err">(r-&gt</span><span class="c">;proto_num &gt; HTTP_VERSION(1,0) &amp;&amp;</span>
-<span class="err">ap_...</span>
-<span class="err">(gdb)</span> <span class="err">n</span>
-<span class="na">1071 if ((access_status</span> <span class="o">=</span> <span class="s">directory_walk(r))) {</span>
-<span class="err">(gdb)</span> <span class="err">s</span>
-<span class="na">directory_walk (r</span><span class="o">=</span><span class="s">0x95250) at http_request.c:288</span>
-<span class="na">288 core_server_config *sconf</span> <span class="o">=</span> <span class="s">ap_get_module_...</span>
-<span class="err">(gdb)</span> <span class="err">b</span> <span class="err">ap_send_error_response</span>
-<span class="err">Breakpoint</span> <span class="err">2</span> <span class="err">at</span> <span class="err">0x47dcc:</span> <span class="err">file</span> <span class="err">http_protocol.c,</span> <span class="err">line</span> <span class="err">2090.</span>
-<span class="err">(gdb)</span> <span class="err">c</span>
-<span class="err">Continuing.</span>
-
-<span class="na">Breakpoint 2, ap_send_error_response (r</span><span class="o">=</span><span class="s">0x95250, recursive_error=0)</span>
-<span class="err">at</span> <span class="err">http_protocol.c:2090</span>
-<span class="na">2090 BUFF *fd</span> <span class="o">=</span> <span class="s">r-&gt;connection-&gt;client;</span>
-<span class="err">(gdb)</span> <span class="err">where</span>
-<span class="c">#0 ap_send_error_response (r=0x95250, recursive_error=0)</span>
-<span class="err">at</span> <span class="err">http_protocol.c:2090</span>
-<span class="c">#1 0x49b10 in ap_die (type=403, r=0x95250) at http_request.c:989</span>
-<span class="c">#2 0x49b60 in decl_die (status=403, phase=0x62db8 "check access",</span>
-<span class="na">r</span><span class="o">=</span><span class="s">0x95250)</span>
-<span class="err">at</span> <span class="err">http_request.c:1000</span>
-<span class="c">#3 0x49f68 in process_request_internal (r=0x95250) at</span>
-<span class="err">http_request.c:1141</span>
-<span class="c">#4 0x49fe0 in ap_process_request (r=0x95250) at http_request.c:1167</span>
-<span class="c">#5 0x439d8 in child_main (child_num_arg=550608) at http_main.c:3826</span>
-<span class="c">#6 0x43b5c in make_child (s=0x7c3e8, slot=0, now=907958743)</span>
-<span class="err">at</span> <span class="err">http_main.c:3898</span>
-<span class="c">#7 0x43ca8 in startup_children (number_to_start=6) at http_main.c:3972</span>
-<span class="c">#8 0x44260 in standalone_main (argc=392552, argv=0x75800) at</span>
-<span class="err">http_main.c:4250</span>
-<span class="c">#9 0x449fc in main (argc=4, argv=0xefffee8c) at http_main.c:4534</span>
-<span class="err">(gdb)</span> <span class="err">s</span>
-<span class="na">2091 int status</span> <span class="o">=</span> <span class="s">r-&gt;status;</span>
-<span class="err">(gdb)</span> <span class="err">p</span> <span class="err">status</span>
-<span class="na">$1</span> <span class="o">=</span> <span class="s">403</span>
-<span class="err">(gdb)</span>
-</pre></div>
-
-
-<p></pre>
+ (gdb) <font color="green">run -X -d /usr/local/apache</font>
+ Starting program: /usr/local/apache/src/httpd -X -d /usr/local/apache
+
+ [ at this point I make a request from another window ]
+
+ Breakpoint 1, ap_process_request (r=0x95250) at http_request.c:1164
+ 1164 if (ap_extended_status)
+ (gdb) <font color="green">s</font>
+ 1165 <br />
+ ap_time_process_request(r->connection->child_num,...
+ (gdb) <font color="green">n</font>
+ 1167 process_request_internal(r);
+ (gdb) <font color="green">s</font>
+ process_request_internal (r=0x95250) at http_request.c:1028
+ 1028 if (!r->proxyreq && r->parsed_uri.path) {
+ (gdb) <font color="green">s</font>
+ 1029 access_status = ap_unescape_url(r->parsed_uri.path);
+ (gdb) <font color="green">n</font>
+ 1030 if (access_status) {
+ (gdb) <font color="green">s</font>
+ 1036 ap_getparents(r->uri); /<em> OK...
+ (gdb) <font color="green">n</font>
+ 1038 if ((access_status = location_walk(r))) {
+ (gdb) <font color="green">n</font>
+ 1043 if ((access_status = ap_translate_name(r))) {
+ (gdb) <font color="green">n</font>
+ 1048 if (!r->proxyreq) {
+ (gdb) <font color="green">n</font>
+ 1053 if (r->method_number == M_TRACE) {
+ (gdb) <font color="green">n</font>
+ 1062 if (r->proto_num > HTTP_VERSION(1,0) &&
+ ap_...
+ (gdb) <font color="green">n</font>
+ 1071 if ((access_status = directory_walk(r))) {
+ (gdb) <font color="green">s</font>
+ directory_walk (r=0x95250) at http_request.c:288
+ 288 core_server_config </em>sconf = ap_get_module_...
+ (gdb) <font color="green">b ap_send_error_response</font>
+ Breakpoint 2 at 0x47dcc: file http_protocol.c, line 2090.
+ (gdb) <font color="green">c</font>
+ Continuing.
+
+ Breakpoint 2, ap_send_error_response (r=0x95250, recursive_error=0)
+ at http_protocol.c:2090
+ 2090 BUFF *fd = r->connection->client;
+ (gdb) <font color="green">where</font>
+ #0 ap_send_error_response (r=0x95250, recursive_error=0)
+ at http_protocol.c:2090
+ #1 0x49b10 in ap_die (type=403, r=0x95250) at http_request.c:989
+ #2 0x49b60 in decl_die (status=403, phase=0x62db8 "check access",
+ r=0x95250)
+ at http_request.c:1000
+ #3 0x49f68 in process_request_internal (r=0x95250) at
+ http_request.c:1141
+ #4 0x49fe0 in ap_process_request (r=0x95250) at http_request.c:1167
+ #5 0x439d8 in child_main (child_num_arg=550608) at http_main.c:3826
+ #6 0x43b5c in make_child (s=0x7c3e8, slot=0, now=907958743)
+ at http_main.c:3898
+ #7 0x43ca8 in startup_children (number_to_start=6) at http_main.c:3972
+ #8 0x44260 in standalone_main (argc=392552, argv=0x75800) at
+ http_main.c:4250
+ #9 0x449fc in main (argc=4, argv=0xefffee8c) at http_main.c:4534
+ (gdb) <font color="green">s</font>
+ 2091 int status = r->status;
+ (gdb) <font color="green">p status</font>
+ $1 = 403
+ (gdb)
+</pre>
There are a few things to note about the above example:</p>
<ol>
<li>