Index: native_client_sdk/doc_generated/devguide/devcycle/debugging.html |
diff --git a/native_client_sdk/doc_generated/devguide/devcycle/debugging.html b/native_client_sdk/doc_generated/devguide/devcycle/debugging.html |
index 7de09062884e3659717ca548155ea44ae0dcde39..8791c89b90da139b5f36ab85bbfbe284690253c4 100644 |
--- a/native_client_sdk/doc_generated/devguide/devcycle/debugging.html |
+++ b/native_client_sdk/doc_generated/devguide/devcycle/debugging.html |
@@ -91,7 +91,13 @@ void errormsg(const char* pMsg){ |
</pre> |
<p>By default stdout and stderr will appear in Chrome’s stdout and stderr stream |
but they can also be redirected as described below.</p> |
-<h4 id="redirecting-output-to-log-files">Redirecting output to log files</h4> |
+<p>The stderr from the process is by default visible in the terminal that launched |
+chrome (at least on mac and linux). Be sure that when you launch chrome it |
+doesn’t attach to an existing instance. One simple way to do this is to pass a |
+new directory to chrome as your user data directory (<code>chrome |
+--user-data-dir=<newdir></code>). It’s also possible to redirect the NaCl’s stderr to |
+other places such as, for example, <a class="reference internal" href="#redirecting-output-to-log"><em>log files</em></a>.</p> |
+<h4 id="redirecting-output-to-log-files"><span id="redirecting-output-to-log"></span>Redirecting output to log files</h4> |
<p>You can redirect stdout and stderr to output files by setting these environment |
variables:</p> |
<ul class="small-gap"> |
@@ -105,6 +111,8 @@ variable as follows:</p> |
<ul class="small-gap"> |
<li><code>NACLLOG=c:\nacl.log</code></li> |
</ul> |
+<p>The exception to this is the <a class="reference internal" href="/native-client/devguide/coding/nacl_io.html"><em>nacl_io library</em></a> which |
+logs directly to the stderr stream.</p> |
<aside class="note"> |
<strong>Note:</strong> If you set the <code>NACL_EXE_STDOUT</code>, <code>NACL_EXE_STDERR</code>, or |
<code>NACLLOG</code> variables to redirect output to a file, you must run Chrome with |
@@ -154,11 +162,11 @@ application created by a Pepper N SDK is only guaranteed to run |
with a matching Chrome version N. If the version of the debug bitcode pexe |
does not match that of Chrome then the translation process may fail, and |
you will see an error message in the JavaScript console.</p> |
-<p>Also, make sure you are passing the <code>-g</code> <a class="reference internal" href="/native-client/devguide/devcycle/building.html#compile-flags"><em>compile option</em></a> to <code>pnacl-clang</code> to enable generating debugging info. |
-You might also want to omit <code>-O2</code> from the compile-time and link-time |
-options, otherwise GDB not might be able to print variables’ values when |
-debugging (this is more of a problem with the PNaCl/LLVM toolchain than |
-with GCC).</p> |
+<p>Also, make sure you are passing the <code>-g</code> <a class="reference internal" href="/native-client/devguide/devcycle/building.html#compile-flags"><em>compile option</em></a> |
+to <code>pnacl-clang</code> to enable generating debugging info. You might also want to |
+omit <code>-O2</code> from the compile-time and link-time options, otherwise GDB not |
+might be able to print variables’ values when debugging (this is more of a |
+problem with the PNaCl/LLVM toolchain than with GCC).</p> |
<p>Once you have built a non-stable debug copy of the pexe, list the URL of |
that copy in your application’s manifest file:</p> |
<pre class="prettyprint"> |
@@ -182,12 +190,13 @@ your local web server serves files from.</p> |
<p>When you run Chrome with <code>--enable-nacl-debug</code>, Chrome will translate |
and run the <code>debug_version.bc</code> instead of <code>release_version.pexe</code>. |
Once the debug version is loaded, you are ready to <a class="reference internal" href="#running-nacl-gdb"><em>run nacl-gdb</em></a></p> |
-<p>Whether you publish the NMF file containing the debug URL to the release |
-web server, is up to you. One reason to avoid publishing the debug URL |
-is that it is only guaranteed to work for the Chrome version that matches |
-the SDK version. Developers who may have left the <code>--enable-nacl-debug</code> |
-flag turned on may end up loading the debug copy of your application |
-(which may or may not work, depending on their version of Chrome).</p> |
+<p>Whether you publish the NMF file containing the debug URL to the |
+release web server, is up to you. One reason to avoid publishing the |
+debug URL is that it is only guaranteed to work for the Chrome version |
+that matches the SDK version. Developers who may have left the |
+<code>--enable-nacl-debug</code> flag turned on may end up loading the debug |
+copy of your application (which may or may not work, depending on |
+their version of Chrome).</p> |
<h4 id="debugging-pnacl-pexes-with-older-pepper-toolchains">Debugging PNaCl pexes (with older Pepper toolchains)</h4> |
<p>If you want to use GDB to debug a program that is compiled with the PNaCl |
toolchain, you must convert the <code>pexe</code> file to a <code>nexe</code>. (You can skip |
@@ -197,8 +206,8 @@ pepper 35 or later.)</p> |
<li>Firstly, make sure you are passing the <code>-g</code> <a class="reference internal" href="/native-client/devguide/devcycle/building.html#compile-flags"><em>compile option</em></a> to <code>pnacl-clang</code> to enable generating debugging info. |
You might also want to omit <code>-O2</code> from the compile-time and link-time |
options.</li> |
-<li><p class="first">Secondly, use <code>pnacl-translate</code> to convert your <code>pexe</code> to one or more |
-<code>nexe</code> files. For example:</p> |
+<li><p class="first">Secondly, use <code>pnacl-translate</code> to convert your <code>pexe</code> to one or more</p> |
+<p><code>nexe</code> files. For example:</p> |
<pre> |
nacl_sdk/pepper_<version>/toolchain/win_pnacl/bin/pnacl-translate \ |
--allow-llvm-bitcode-input hello_world.pexe -arch x86-32 \ |
@@ -466,10 +475,9 @@ Linux; .bundle files on Mac) are loaded directly in either the Chrome renderer |
process or a separate plugin process, rather than in Native Client. Building a |
module as a trusted Pepper plugin allows you to use standard debuggers and |
development tools on your system, but when you’re finished developing the |
-plugin, you need to port it to Native Client (i.e., build the module with one |
-of the toolchains in the NaCl SDK so that the module runs in Native Client). |
-For details on this advanced development technique, see <a class="reference external" href="http://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-a-trusted-plugin">Debugging a Trusted |
-Plugin</a>. |
+plugin, you need to port it to Native Client (i.e., build the module with one of |
+the toolchains in the NaCl SDK so that the module runs in Native Client). For |
+details on this advanced development technique, see <a class="reference external" href="http://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-a-trusted-plugin">Debugging a Trusted Plugin</a>. |
Note that starting with the <code>pepper_22</code> bundle, the NaCl SDK for Windows |
includes pre-built libraries and library source code, making it much easier to |
build a module into a .DLL.</p> |