Index: tools/mac/run_with_crashpad.ad |
diff --git a/tools/mac/run_with_crashpad.ad b/tools/mac/run_with_crashpad.ad |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c216153e9b5705f1794155ccebc81e3d2ae7161a |
--- /dev/null |
+++ b/tools/mac/run_with_crashpad.ad |
@@ -0,0 +1,99 @@ |
+// Copyright 2014 The Crashpad Authors. All rights reserved. |
+// |
+// Licensed under the Apache License, Version 2.0 (the "License"); |
+// you may not use this file except in compliance with the License. |
+// You may obtain a copy of the License at |
+// |
+// http://www.apache.org/licenses/LICENSE-2.0 |
+// |
+// Unless required by applicable law or agreed to in writing, software |
+// distributed under the License is distributed on an "AS IS" BASIS, |
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+// See the License for the specific language governing permissions and |
+// limitations under the License. |
+ |
+:doctype: manpage |
+ |
+= run_with_crashpad(1) |
+ |
+== Name |
+ |
+run_with_crashpad - Run a program with a Crashpad exception handler |
+ |
+== Synopsis |
+ |
+[verse] |
+*run_with_crashpad* ['OPTION…'] 'COMMAND' ['ARG…'] |
+ |
+== Description |
+ |
+Starts a Crashpad exception handler server such as crashpad_handler(8) and |
+becomes its client, setting an exception port referencing the handler. Then, |
+executes 'COMMAND' along with any arguments specified ('ARG…') with the new |
+exception port in effect. |
+ |
+The exception port is configured to receive exceptions of type +EXC_CRASH+, |
++EXC_RESOURCE+, and +EXC_GUARD+. The exception behavior is configured as |
++EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES+. The thread state flavor is |
+set to +MACHINE_THREAD_STATE+. |
+ |
+Programs that use the Crashpad client library directly will not normally use |
+this tool. This tool exists to allow programs that are unaware of Crashpad to be |
+run with a Crashpad exception handler. |
+ |
+== Options |
+*-h*, *--handler*='HANDLER':: |
+Invoke 'HANDLER' as the Crashpad handler program instead of the default, |
+*crashpad_handler*. |
+ |
+*-a*, *--handler-argument*='ARGUMENT':: |
+Invokes the Crashpad handler program with 'ARGUMENT' as one of its arguments. |
+This option may appear zero, one, or more times. Regardless of this option’s |
+presence, the handler will always be invoked with the necessary arguments to |
+perform a handshake. |
+ |
+*--help*:: |
+Display help and exit. |
+ |
+*--version*:: |
+Output version information and exit. |
+ |
+== Examples |
+ |
+Starts a Crashpad exception handler server by its default name, |
+*crashpad_handler*, and runs a program with this handler in effect. |
+[subs="quotes"] |
+---- |
+$ *run_with_crashpad crash* |
+Illegal instruction: 4 |
+---- |
+ |
+Starts a Crashpad exception handler server at a nonstandard path, and runs |
+exception_port_tool(1) to show the task-level exception ports. |
+[subs="quotes"] |
+---- |
+$ *run_with_crashpad --handler=/tmp/crashpad_handler exception_port_tool* |
+task exception port 0, mask 0x1c00 (CRASH|RESOURCE|GUARD), port 0x30b, behavior |
+0x80000003 (STATE_IDENTITY|MACH), flavor 7 (THREAD) |
+---- |
+ |
+== Exit Status |
+ |
+*0*:: |
+Success. |
+ |
+*125*:: |
+Failure, with a message printed to the standard error stream. |
+ |
+*126*:: |
+The program specified by 'COMMAND' was found, but could not be invoked. |
+ |
+*127*:: |
+The program specified by 'COMMAND' could not be found. |
+ |
+== See Also |
+ |
+crashpad_handler(8), |
+exception_port_tool(1) |
+ |
+include::../man_footer.ad[] |