com web/bugs: Rewrite generate backtrace on Windows w/o compiler section: templates/pages/bugs_generating_backtrace_win32.php
www/images/backtrace-images-win32/analyze.jpg www/im ages/backtrace-images-win32/dbg_options.png www/image s/backtrace-images-win32/dbg_select_php.png
www/ima ges/backtrace-images-win32/dbg_wizard_1.png www/i mages/backtrace-images-win32/dbg_wizard_2.png www /images/backtrace-images-win32/rules.jpg
| From: | Christoph Michael Becker | Date: | Wed, 21 Oct 2020 08:53:28 +0000 |
| Subject: | com web/bugs: Rewrite generate backtrace on Windows w/o compiler section: templates/pages/bugs_generating_backtrace_win32.php www/images/backtrace-images-win32/analyze.jpg www/im ages/backtrace-images-win32/dbg_options.png www/image s/backtrace-images-win32/dbg_select_php.png www/ima ges/backtrace-images-win32/dbg_wizard_1.png www/i mages/backtrace-images-win32/dbg_wizard_2.png www /images/backtrace-images-win32/rules.jpg |
||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-28822@lists.php.net to get a copy of this message | ||
Commit: 53b60e33bb2d5f9f92f664f029a97d400a359c6a
Author: Christoph M. Becker <cmbecker69@gmx.de> Wed, 21 Oct 2020 10:53:28 +0200
Parents: a7c206cc24968080c21e626e176745f8265646b2
Branches: master
Link: http://git.php.net/?p=web/bugs.git;a=commitdiff;h=53b60e33bb2d5f9f92f664f029a97d400a359c6a
Log:
Rewrite generate backtrace on Windows w/o compiler section
That info was terribly outdated; we provide up-to-date instructions
instead.
Changed paths:
M templates/pages/bugs_generating_backtrace_win32.php
D www/images/backtrace-images-win32/analyze.jpg
D www/images/backtrace-images-win32/dbg_options.png
D www/images/backtrace-images-win32/dbg_select_php.png
D www/images/backtrace-images-win32/dbg_wizard_1.png
D www/images/backtrace-images-win32/dbg_wizard_2.png
D www/images/backtrace-images-win32/rules.jpg
Diff:
diff --git a/templates/pages/bugs_generating_backtrace_win32.php
b/templates/pages/bugs_generating_backtrace_win32.php
index 985be24..698b848 100644
--- a/templates/pages/bugs_generating_backtrace_win32.php
+++ b/templates/pages/bugs_generating_backtrace_win32.php
@@ -38,68 +38,38 @@ PHP! mainCRTStartup + 227 bytes
KERNEL32! 77e81af6()
</code></pre>
-<!--
- Everything below is stolen from Pierre Joye
- https://blog.thepimp.net/index.php/post/2007/06/10/debug-pack-or-how-to-generate-backtrack-on-windows-without-compiling
--->
<h1>Generating backtrace, <u>without</u> compiler, on Windows</h1>
-<p>You'll need:</p>
-
+<p>Generating a backtrace without compiler is usually a two step process:</p>
<ul>
-<li>A PHP <a href="https://windows.php.net/downloads/snaps/">snapshot</a>
or <a href="https://windows.php.net/download/">stable</a>
release</li>
-<li>PHP Debug pack (<a href="https://windows.php.net/downloads/snaps/">snapshot</a>
or <a href="https://windows.php.net/download/">stable</a>)</li>
-<li>Microsoft <a href="https://www.microsoft.com/en-us/download/details.aspx?id=49924">Debug
Diagnostic Tools</a></li>
-<li>Evil script to crash PHP</li>
+<li>Generate a crash dump file (.dmp)</li>
+<li>Analyze the crash dump file to get a stack backtrace</li>
</ul>
+<p>There are several solutions for either step; in the following we describe one solution
each.</p>
-<p>For the sake of this example, we will simply use PHP in the shell. The same
-method can be used for IIS or any other process or services.</p>
-
-
-<p>Once you have installed the Debug diagnostic tools and uncompressed PHP and
-its debug pack (they can be kept in two separate folders), the first step is to
-configure the diagnostic tools. Select the tools menu and click on "Options and
-settings". The first tab contains the path to the symbols files, add the "debug
-folder" to the existing list using the "browse" button:</p>
-
-<p><img src="/images/backtrace-images-win32/dbg_options.png"
alt="Options"></p>
-
-<p>Now we are ready to generate our backtrace.</p>
-
-<p>We will use the wizard, click the "Add a rule" button and choose
"Crash" as
-the rule type:</p>
-<p><img src="/images/backtrace-images-win32/dbg_wizard_1.png" alt="Wizard
#1"></p>
-
-<p>In the next window, select "a specific process":</p>
-
-<p><img src="/images/backtrace-images-win32/dbg_wizard_2.png" alt="Wizard
#2"></p>
-
-<p>Add a "sleep(10);" for the first run (from the cmd: "php.exe
crashme.php"),
-it will let you enough time to click "next" and select the php process. If you
-are debugging the Apache module, start Apache with -X option and choose
-httpd.exe instead of php.exe from the process list. Then proceed further:</p>
+<h2>Use ProcDump to generate crash dump files</h2>
-<p><img src="/images/backtrace-images-win32/dbg_select_php.png" alt="Select
the php process"></p>
+<p>Download <a href="https://docs.microsoft.com/en-us/sysinternals/downloads/procdump">ProcDump</a>,
+and register it as the Just-in-Time (AeDebug) debugger:</p>
+<pre><code>procdump -ma -i C:\dumps</code></pre>
+<p>Use any suitable folder to store the crash dump files instead of
<code>C:\dumps</code>.
+Whenever a process crashes, a crash dump file will be written to the specified folder.</p>
-<p>Click again next and let it crash. If everything went well, you should see
-your new rule as shown in the image below:</p>
-
-<p><img src="/images/backtrace-images-win32/rules.jpg" alt="rules
list"></p>
-
-<p>It also detected that "php.exe" was used. A rule has been created for all
-instance of "php.exe". It will save you the sleep and process selection.</p>
-
-<p>Now you can click the "Analyze data" button:</p>
-
-<p><img src="/images/backtrace-images-win32/analyze.jpg"
alt="Analyze"></p>
-
-<p>Et voila, the complete report will show up in your internet explorer
-(compressed html):</p>
+<h2>Use Debug Diagnostic Tool to analyze the crash dump</h2>
+<ul>
+<li>Download and install <a
+href="https://www.microsoft.com/en-us/download/details.aspx?id=58210">Debug
Diagnostic Tool</a></li>
+<li><a href="https://windows.php.net/downloads/">Download</a>
and unpack the PHP debug pack corresponding to the PHP version you are running</li>
+<li>Start the Debug Diagnostic Tool</li>
+<li>Add the path to the unpacked PHP debug pack as symbol search path in the
settings</li>
+<li>Press "add data file" and select the crash dump file formerly
generated</li>
+<li>Select "default analysis"</li>
+<li>Press "start analysis"</li>
+</ul>
+<p>After the analysis has finished, the DebugDiag Analysis Report opens in Internet
+Explorer; the relevant part of that report is the stack backtrace, which looks similar
+to the following:</p>
<p><img src="/images/backtrace-images-win32/backtrace.jpg" alt="Debug
report backtrace screenshot"></a></p>
-<p>What we need is the backtrace itself which can be found under "Thread X -
-System ID XXX".</p>
-
<?php $this->end('content') ?>
diff --git a/www/images/backtrace-images-win32/analyze.jpg
b/www/images/backtrace-images-win32/analyze.jpg
deleted file mode 100644
index 8fc4baa..0000000
Binary files a/www/images/backtrace-images-win32/analyze.jpg and /dev/null differ
diff --git a/www/images/backtrace-images-win32/dbg_options.png
b/www/images/backtrace-images-win32/dbg_options.png
deleted file mode 100644
index f0a0d61..0000000
Binary files a/www/images/backtrace-images-win32/dbg_options.png and /dev/null differ
diff --git a/www/images/backtrace-images-win32/dbg_select_php.png
b/www/images/backtrace-images-win32/dbg_select_php.png
deleted file mode 100644
index 1a37a89..0000000
Binary files a/www/images/backtrace-images-win32/dbg_select_php.png and /dev/null differ
diff --git a/www/images/backtrace-images-win32/dbg_wizard_1.png
b/www/images/backtrace-images-win32/dbg_wizard_1.png
deleted file mode 100644
index 6ef5517..0000000
Binary files a/www/images/backtrace-images-win32/dbg_wizard_1.png and /dev/null differ
diff --git a/www/images/backtrace-images-win32/dbg_wizard_2.png
b/www/images/backtrace-images-win32/dbg_wizard_2.png
deleted file mode 100644
index 74cf4c9..0000000
Binary files a/www/images/backtrace-images-win32/dbg_wizard_2.png and /dev/null differ
diff --git a/www/images/backtrace-images-win32/rules.jpg
b/www/images/backtrace-images-win32/rules.jpg
deleted file mode 100644
index 1c60ae9..0000000
Binary files a/www/images/backtrace-images-win32/rules.jpg and /dev/null differ