|
1 | 1 | # Diagnose Bundle
|
2 | 2 |
|
3 |
| -The diagnose bundle is generated by the `sourcekit-lsp` diagnose command. It’s designed to contain to help SourceKit-LSP developers can diagnose and fix issues a user reports. The information in the diagnose bundle should be human readable so that users generating the bundle can determine whether they are willing to share the collected information with SourceKit-LSP developers. |
| 3 | +A diagnose bundle is designed to help SourceKit-LSP developers diagnose and fix reported issues. |
| 4 | +You can generate a diagnose bundle with: |
| 5 | +```sh |
| 6 | +sourcekit-lsp diagnose |
| 7 | +``` |
| 8 | + |
| 9 | +And then attach the resulting `sourcekit-lsp-diagnose-*` bundle to any bug reports. |
4 | 10 |
|
5 |
| -The diagnose bundle contains the following information: |
| 11 | +You may want to inspect the bundle to determine whether you're willing to share the collected information. At a high level they contain: |
6 | 12 | - Crash logs from SourceKit
|
7 | 13 | - From Xcode toolchains, just a stack trace.
|
8 | 14 | - For assert compilers (ie. nightly toolchains) also sometimes some source code that was currently compiled to cause the crash.
|
9 | 15 | - Log messages emitted by SourceKit
|
10 |
| - - We mark all information that may contain private information (source code, file names, …) as private in os_log so by default all of that will be redacted. Private logging can be enabled for SourceKit-LSP as described in [Enable Extended Logging](#enable-extended-logging). These extended log messages are also included in a sysdiagnose. |
11 |
| - - On Linux and Windows, we currently don’t redact the private information, so users should always explicitly be asked before sharing these logs. |
| 16 | + - We mark all information that may contain private information (source code, file names, …) as private by default, so all of that will be redacted. Private logging can be enabled for SourceKit-LSP as described in [Enable Extended Logging](#enable-extended-logging). On macOS these extended log messages are also included in a sysdiagnose. |
12 | 17 | - Versions of Swift installed on your system
|
13 |
| - - We don’t consider this private information |
14 | 18 | - If possible, a minimized project that caused SourceKit to crash
|
15 | 19 | - If possible, a minimized project that caused the Swift compiler to crash
|
16 |
| - - Both minimized projects contain user code and are thus considered private. Hence we need to explicitly prompt the user before sharing this information. |
17 |
| - - As a future direction, it could be possible to remove any private information from the reduced examples by removing all comments and replacing all identifiers by obfuscated names. |
18 | 20 |
|
19 | 21 | ## Enable Extended logging
|
20 | 22 |
|
21 |
| -Extended logging of SourceKit-LSP is not enabled by default because it contains information about your source code, directory structure and similar potentially sensitive information. Instead, the logging system redacts that information. If you are comfortable with sharing such information, you can enable extended SourceKit-LSP’s extended logging, which improves the ability of SourceKit-LSP developers to understand and fix issues. |
| 23 | +Extended logging of SourceKit-LSP is not enabled by default because it contains information about your source code, directory structure, and similar potentially sensitive information. Instead, the logging system redacts that information. If you are comfortable with sharing such information, you can enable extended SourceKit-LSP’s extended logging, which improves the ability of SourceKit-LSP developers to understand and fix issues. |
22 | 24 |
|
23 | 25 | ### macOS
|
24 | 26 |
|
|
0 commit comments