Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(549)

Unified Diff: native_client_sdk/src/doc/devguide/devcycle/debugging.rst

Issue 488133003: Second batch of corrections for incorrect paths. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/doc/devguide/devcycle/debugging.rst
diff --git a/native_client_sdk/src/doc/devguide/devcycle/debugging.rst b/native_client_sdk/src/doc/devguide/devcycle/debugging.rst
index 14cba307664a14e4c0b86c992ed75a562daad070..0c8ffff2d4cbf954db072f8aa0ce4b2361175972 100644
--- a/native_client_sdk/src/doc/devguide/devcycle/debugging.rst
+++ b/native_client_sdk/src/doc/devguide/devcycle/debugging.rst
@@ -27,15 +27,15 @@ application:
memory information are visible. If they are not, right click in the header
row and select the memory items from the popup menu that appears.
-A browser window running a Native Client application will have at least two
-processes associated with it: a process for the app's top level (the render
-process managing the page including its HTML and any JavaScript) and one or
-more processes for each instance of a Native Client module embedded in the page
-(each process running native code from one nexe file). The top-level process
-appears with the application's icon and begins with the text "App:". A Native
-Client process appears with a Chrome extension icon (a jigsaw puzzle piece
-|puzzle|) and begins with the text "Native Client module" followed by the URL
-of its manifest file.
+A browser window running a Native Client application has at least two processes
+associated with it: a process for the app's top level (the render process
+managing the page including its HTML and JavaScript) and one or more
+processes for each instance of a Native Client module embedded in the page
+(each process running native code from one nexe or pexe file). The top-level
+process appears with the application's icon and begins with the text "Tab:".
+A Native Client process appears with a Chrome extension icon (a jigsaw puzzle
+piece |puzzle|) and begins with the text "Native Client module:" followed by the
+URL of its manifest file.
From the Task Manager you can view the changing memory allocations of all the
processes associated with a Native Client application. Each process has its own
@@ -52,9 +52,10 @@ increase the amount of Native Client's diagnostic output by setting the
following `environment variables
<http://en.wikipedia.org/wiki/Environment_variable>`_:
-* NACL_PLUGIN_DEBUG=1
-* NACL_SRPC_DEBUG=[1-255] (use a higher number for more verbose debug output)
-* NACLVERBOSITY=[1-255]
+* ``NACL_PLUGIN_DEBUG=1``
+* ``NACL_SRPC_DEBUG=[1-255]`` (use a higher number for more verbose debug
+ output)
+* ``NACLVERBOSITY=[1-255]``
Basic debugging
===============
@@ -62,12 +63,12 @@ Basic debugging
Writing messages to the JavaScript console
------------------------------------------
-You can send messages from your C/C++ code to JavaScript using the PostMessage
-call in the :doc:`Pepper messaging system <../coding/message-system>`. When the
-JavaScript code receives a message, its message event handler can call
-`console.log() <https://developer.mozilla.org/en/DOM/console.log>`_ to write
-the message to the JavaScript `console </devtools/docs/console-api>`_ in
-Chrome's Developer Tools.
+You can send messages from your C/C++ code to JavaScript using the
+``PostMessage()`` call in the :doc:`Pepper messaging system
+<../coding/message-system>`. When the JavaScript code receives a message, its
+message event handler can call `console.log()
+<https://developer.mozilla.org/en/DOM/console.log>`_ to write the message to the
+JavaScript `console </devtools/docs/console-api>`_ in Chrome's Developer Tools.
Debugging with printf
---------------------
@@ -88,10 +89,12 @@ calling fprintf() directly, or by using cover functions like these:
By default stdout and stderr will appear in Chrome's stdout and stderr stream
but they can also be redirected as described below.
+
Redirecting output to log files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can redirect stdout and stderr to output files by setting these environment variables:
+You can redirect stdout and stderr to output files by setting these environment
+variables:
* ``NACL_EXE_STDOUT=c:\nacl_stdout.log``
* ``NACL_EXE_STDERR=c:\nacl_stderr.log``
@@ -106,10 +109,10 @@ variable as follows:
.. Note::
:class: note
- **Note:** If you set the NACL_EXE_STDOUT, NACL_EXE_STDERR, or NACLLOG
- variables to redirect output to a file, you must run Chrome with the
- ``--no-sandbox`` flag. You must also be careful that each variable points to
- a different file.
+ **Note:** If you set the ``NACL_EXE_STDOUT``, ``NACL_EXE_STDERR``, or
+ ``NACLLOG`` variables to redirect output to a file, you must run Chrome with
+ the ``--no-sandbox`` flag. You must also be careful that each variable points
+ to a different file.
Redirecting output to the JavaScript console
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -119,15 +122,15 @@ relayed to the JavaScript side of your application through the Pepper messaging
system, where you can then write the output to the JavaScript console. Follow
these steps:
-#. Set the NACL_EXE_STDOUT and NACL_EXE_STDERR environment variables as
+#. Set the ``NACL_EXE_STDOUT`` and ``NACL_EXE_STDERR`` environment variables as
follows:
- * NACL_EXE_STDOUT=DEBUG_ONLY:dev://postmessage
- * NACL_EXE_STDERR=DEBUG_ONLY:dev://postmessage
+ * ``NACL_EXE_STDOUT=DEBUG_ONLY:dev://postmessage``
+ * ``NACL_EXE_STDERR=DEBUG_ONLY:dev://postmessage``
- These settings tell Native Client to use PostMessage() to send output that
- your Native Client module writes to stdout and stderr to the JavaScript side
- of your application.
+ These settings tell Native Client to use ``PostMessage()`` to send output
+ that your Native Client module writes to stdout and stderr to the JavaScript
+ side of your application.
#. Register a JavaScript handler to receive messages from your Native Client
module:
@@ -161,7 +164,7 @@ these steps:
Once you've implemented a message handler and set up the environment
variables as described above, you can check the JavaScript console to see
output that your Native Client module prints to stdout and stderr. Keep in
- mind that your module makes a call to PostMessage() every time it flushes
+ mind that your module makes a call to ``PostMessage()`` every time it flushes
stdout or stderr. Your application's performance will degrade considerably
if your module prints and flushes frequently, or if it makes frequent Pepper
calls to begin with (e.g., to render).
@@ -201,8 +204,8 @@ Debugging with nacl-gdb
The Native Client SDK includes a command-line debugger that you can use to
debug Native Client modules. The debugger is based on the GNU debugger `gdb
<http://www.gnu.org/software/gdb/>`_, and is located at
-``toolchain/<platform>_x86_newlib/bin/x86_64-nacl-gdb`` (where *<platform>*
-is the platform of your development machine: ``win``, ``mac``, or
+``pepper_<version>/toolchain/<platform>_x86_newlib/bin/x86_64-nacl-gdb`` (where
+*<platform>* is the platform of your development machine: ``win``, ``mac``, or
``linux``).
Note that this same copy of GDB can be used to debug any NaCl program,
@@ -212,8 +215,8 @@ and ``glibc`` toolchains both contain the same version of GDB.
.. _debugging_pnacl_pexes:
-Debugging PNaCl pexes (with Pepper 35+)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Debugging PNaCl pexes (Pepper 35 or later)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you want to use GDB to debug a program that is compiled with the PNaCl
toolchain, you must have a copy of the pexe from **before** running
@@ -229,7 +232,7 @@ is not considered stable. This means that a debug copy of the PNaCl
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 and error message in the JavaScript console.
+you will see an error message in the JavaScript console.
Also, make sure you are passing the ``-g`` :ref:`compile option
<compile_flags>` to ``pnacl-clang`` to enable generating debugging info.
@@ -293,10 +296,12 @@ pepper 35 or later.)
.. naclcode::
:prettyprint: 0
- <NACL_SDK_ROOT>/toolchain/win_pnacl/bin/pnacl-translate ^
- --allow-llvm-bitcode-input hello_world.pexe -arch x86-32 -o hello_world_x86_32.nexe
- <NACL_SDK_ROOT>/toolchain/win_pnacl/bin/pnacl-translate ^
- --allow-llvm-bitcode-input hello_world.pexe -arch x86-64 -o hello_world_x86_64.nexe
+ <NACL_SDK_ROOT>/pepper_<version>/toolchain/win_pnacl/bin/pnacl-translate \
+ --allow-llvm-bitcode-input hello_world.pexe -arch x86-32 \
+ -o hello_world_x86_32.nexe
+ <NACL_SDK_ROOT>/pepper_<version>/toolchain/win_pnacl/bin/pnacl-translate \
+ --allow-llvm-bitcode-input hello_world.pexe -arch x86-64 \
+ -o hello_world_x86_64.nexe
For this, use the non-finalized ``pexe`` file produced by
``pnacl-clang``, not the ``pexe`` file produced by ``pnacl-finalize``.
@@ -419,24 +424,25 @@ Follow the instructions below to debug your module with nacl-gdb:
#. Go to the directory with your source code, and run nacl-gdb from there. For
example::
- cd <NACL_SDK_ROOT>/examples/hello_world_gles
- <NACL_SDK_ROOT>/toolchain/win_x86_newlib/bin/x86_64-nacl-gdb
+ cd <NACL_SDK_ROOT>/pepper_<version>/examples/demo/drive
binji 2014/08/20 19:09:34 same as before, NACL_SDK_ROOT in the code is expec
jpmedley 2014/08/20 20:15:01 Somebody was worried that nacl_sdk/ would change.
+ <NACL_SDK_ROOT>/pepper_<version>/toolchain/win_x86_newlib/bin/x86_64-nacl-gdb
The debugger will start and show you a gdb prompt::
(gdb)
-#. For debugging PNaCl pexes run the following gdb command lines
- (skip to the next item if you are using NaCl instead of PNaCl)::
+#. Run the debugging command lines.
+ **For PNaCl**::
+
(gdb) target remote localhost:4014
(gdb) remote get nexe <path-to-save-translated-nexe-with-debug-info>
(gdb) file <path-to-save-translated-nexe-with-debug-info>
(gdb) remote get irt <path-to-save-NaCl-integrated-runtime>
(gdb) nacl-irt <path-to-saved-NaCl-integrated-runtime>
-#. For NaCl nexes, run the following commands from the gdb command line::
-
+ **For NaCl**::
+
(gdb) target remote localhost:4014
(gdb) nacl-manifest <path-to-your-.nmf-file>
(gdb) remote get irt <path-to-save-NaCl-integrated-runtime>
@@ -474,7 +480,7 @@ Follow the instructions below to debug your module with nacl-gdb:
SxS/Application/23.0.1247.1/nacl_irt_x86_64.nexe``.
The ``remote get irt <path>`` saves that to the current working
directory so that you do not need to find where exactly the IRT
- is stored alongside Chrome.
+ is stored.
``nacl-irt <path>``
Tells the debugger where to find the Native Client Integrated Runtime
@@ -495,13 +501,13 @@ Follow the instructions below to debug your module with nacl-gdb:
Windows::
target remote localhost:4014
- nacl-manifest "C:/<NACL_SDK_ROOT>/examples/hello_world_gles/newlib/Debug/hello_world_gles.nmf"
+ nacl-manifest "C:/<NACL_SDK_ROOT>/pepper_<version>/examples/hello_world_gles/newlib/Debug/hello_world_gles.nmf"
nacl-irt "C:/Users/<username>/AppData/Local/Google/Chrome SxS/Application/23.0.1247.1/nacl_irt_x86_64.nexe"
To save yourself some typing, you can put put these nacl-gdb commands in a
script file, and execute the file when you run nacl-gdb, like so::
- <NACL_SDK_ROOT>/toolchain/win_x86_newlib/bin/x86_64-nacl-gdb -x <nacl-script-file>
+ <NACL_SDK_ROOT>/pepper_<version>/toolchain/win_x86_newlib/bin/x86_64-nacl-gdb -x <nacl-script-file>
If nacl-gdb connects successfully to Chrome, it displays a message such as
the one below, followed by a gdb prompt::

Powered by Google App Engine
This is Rietveld 408576698