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

Unified Diff: docs/client_design.md

Issue 2103273003: docs: clean up markdown Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « README.md ('k') | docs/contributing_to_breakpad.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/client_design.md
diff --git a/docs/client_design.md b/docs/client_design.md
index 30ffb2fbccb5829b328f1cbf85204c64a2594dcc..e8f730d412e17f21bcdb5663ab2be5cb238ea9c9 100644
--- a/docs/client_design.md
+++ b/docs/client_design.md
@@ -5,8 +5,8 @@
The Breakpad client libraries are responsible for monitoring an application for
crashes (exceptions), handling them when they occur by generating a dump, and
providing a means to upload dumps to a crash reporting server. These tasks are
-divided between the “handler” (short for “exception handler”) library linked in
-to an application being monitored for crashes, and the “sender” library,
+divided between the "handler" (short for "exception handler") library linked in
+to an application being monitored for crashes, and the "sender" library,
intended to be linked in to a separate external program.
## Background
@@ -45,7 +45,7 @@ or at the request of the application itself. The latter case may be useful in
debugging assertions or other conditions where developers want to know how a
program got in to a specific non-crash state. After generating a dump, the
handler calls a user-specified callback function. The callback function may
-collect additional data about the program’s state, quit the program, launch a
Bons 2016/06/29 17:22:16 Why are you replacing the smart quotes with dumb o
vapier 2016/06/29 17:56:40 smart quotes are an abomination ;). they don't re
+collect additional data about the program's state, quit the program, launch a
crash reporter application, or perform other tasks. Allowing for this
functionality to be dictated by a callback function preserves flexibility.
@@ -68,9 +68,9 @@ amount of work from a crashed process.
### Exception Handler Installation
The mechanisms for installing an exception handler vary between operating
-systems. On Windows, it’s a relatively simple matter of making one call to
-register a [top-level exception filter]
-(http://msdn.microsoft.com/library/en-us/debug/base/setunhandledexceptionfilter.asp)
+systems. On Windows, it's a relatively simple matter of making one call to
+register a
+[top-level exception filter](https://msdn.microsoft.com/library/en-us/debug/base/setunhandledexceptionfilter.asp)
callback function. On most Unix-like systems such as Linux, processes are
informed of exceptions by the delivery of a signal, so an exception handler
takes the form of a signal handler. The native mechanism to catch exceptions on
@@ -84,7 +84,7 @@ different implementations of the Breakpad handler libraries perform these tasks
in the appropriate ways on each platform, while exposing a similar interface on
each.
-A Breakpad handler is embodied in an `ExceptionHandler` object. Because it’s a
+A Breakpad handler is embodied in an `ExceptionHandler` object. Because it's a
C++ object, `ExceptionHandler`s may be created as local variables, allowing them
to be installed and removed as functions are called and return. This provides
one possible way for a developer to monitor only a portion of an application for
@@ -111,9 +111,9 @@ to the following guidelines for safety at exception time:
The only code permitted to execute on this thread is the code necessary to
transition handling to a dedicated preallocated handler thread, and the code
to return from the exception handler.
-* Handlers shouldn’t handle crashes by attempting to walk stacks themselves,
+* Handlers shouldn't handle crashes by attempting to walk stacks themselves,
as stacks may be in inconsistent states. Dump generation should be performed
- by interfacing with the operating system’s memory manager and code module
+ by interfacing with the operating system's memory manager and code module
manager.
* Library code, including runtime library code, must be avoided unless it
provably meets the above guidelines. For example, this means that the STL
@@ -136,7 +136,7 @@ Linux, the handler thread is signaled by a small amount of code that executes on
the exception thread. Because the code that executes on the exception thread in
this case is small and safe, this does not pose a problem. Even when an
exception is caused by exceeding stack size limits, this code is sufficiently
-compact to execute entirely within the stack’s guard page without causing an
+compact to execute entirely within the stack's guard page without causing an
exception.
The handler thread may also be triggered directly by a user call, even when no
@@ -147,7 +147,7 @@ interesting.
When the handler thread begins handling an exception, it calls an optional
user-defined filter callback function, which is responsible for judging whether
-Breakpad’s handler should continue handling the exception or not. This mechanism
+Breakpad's handler should continue handling the exception or not. This mechanism
is provided for the benefit of library or plug-in code, whose developers may not
be interested in reports of crashes that occur outside of their modules but
within processes hosting their code. If the filter callback indicates that it is
@@ -174,13 +174,14 @@ callback may be used to launch a separate crash reporting program or to collect
additional data from the application. The callback may also be used to influence
whether Breakpad will treat the exception as handled or unhandled. Even after a
dump is successfully generated, Breakpad can be made to behave as though it
-didn’t actually handle an exception. This function may be useful for developers
+didn't actually handle an exception. This function may be useful for developers
who want to test their applications with Breakpad enabled but still retain the
ability to use traditional debugging techniques. It also allows a
-Breakpad-enabled application to coexist with a platform’s native crash reporting
-system, such as Mac OS X’ [CrashReporter]
-(http://developer.apple.com/technotes/tn2004/tn2123.html) and [Windows Error
-Reporting](http://msdn.microsoft.com/isv/resources/wer/).
+Breakpad-enabled application to coexist with a platform's native crash reporting
+system, such as Mac OS X's
+[CrashReporter](https://developer.apple.com/technotes/tn2004/tn2123.html)
+and
+[Windows Error Reporting](https://msdn.microsoft.com/en-us/library/windows/desktop/bb513641(v=vs.85).aspx).
Typically, when Breakpad handles an exception fully and no debuggers are
involved, the crashed process will terminate.
@@ -189,36 +190,36 @@ Authors of both callback functions that execute within a Breakpad handler are
cautioned that their code will be run at exception time, and that as a result,
they should observe the same programming practices that the Breakpad handler
itself adheres to. Notably, if a callback is to be used to collect additional
-data from an application, it should take care to read only “safe” data. This
+data from an application, it should take care to read only "safe" data. This
might involve accessing only static memory locations that are updated
periodically during the course of normal program execution.
### Sender Library
The Breakpad sender library provides a single function to send a crash report to
-a crash server. It accepts a crash server’s URL, a map of key-value parameters
+a crash server. It accepts a crash server's URL, a map of key-value parameters
that will accompany the dump, and the path to a dump file itself. Each of the
key-value parameters and the dump file are sent as distinct parts of a multipart
-HTTP POST request to the specified URL using the platform’s native HTTP
-facilities. On Linux, [libcurl](http://curl.haxx.se/) is used for this function,
+HTTP POST request to the specified URL using the platform's native HTTP
+facilities. On Linux, [libcurl](https://curl.haxx.se/) is used for this function,
as it is the closest thing to a standard HTTP library available on that
platform.
## Future Plans
-Although we’ve had great success with in-process dump generation by following
+Although we've had great success with in-process dump generation by following
our guidelines for safe code at exception time, we are exploring options for
allowing dumps to be generated in a separate process, to further enhance the
-handler library’s robustness.
+handler library's robustness.
-On Windows, we intend to offer tools to make it easier for Breakpad’s settings
+On Windows, we intend to offer tools to make it easier for Breakpad's settings
to be managed by the native group policy management system.
We also plan to offer tools that many developers would find desirable in the
context of handling crashes, such as a mechanism to determine at launch if the
-program last terminated in a crash, and a way to calculate “crashiness” in terms
+program last terminated in a crash, and a way to calculate "crashiness" in terms
of crashes over time or the number of application launches between crashes.
We are also investigating methods to capture crashes that occur early in an
-application’s launch sequence, including crashes that occur before a program’s
+application's launch sequence, including crashes that occur before a program's
main function begins executing.
« no previous file with comments | « README.md ('k') | docs/contributing_to_breakpad.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698