diff --git a/docs/core/testing/microsoft-testing-platform-extensions-diagnostics.md b/docs/core/testing/microsoft-testing-platform-extensions-diagnostics.md index 06b38ecbb09c3..373184acfc806 100644 --- a/docs/core/testing/microsoft-testing-platform-extensions-diagnostics.md +++ b/docs/core/testing/microsoft-testing-platform-extensions-diagnostics.md @@ -61,3 +61,45 @@ To configure the hang dump file generation, use the following options: | `-⁠-hangdump-filename` | Specifies the file name of the dump. | | `--hangdump-timeout` | Specifies the timeout after which the dump is generated. The timeout value is specified in one of the following formats:
`1.5h`, `1.5hour`, `1.5hours`
`90m`, `90min`, `90minute`, `90minutes`
`5400s`, `5400sec`, `5400second`, `5400seconds`. Defaults to `30m` (30 minutes). | | `--hangdump-type` | Specifies the type of the dump. Valid values are `Mini`, `Heap`, `Triage`, `Full`. Defaults as `Full`. For more information, see [Types of mini dumps](../diagnostics/collect-dumps-crash.md#types-of-mini-dumps). | + +### Considerations for macOS + +Taking dumps when running on macOS can be problematic. If you found that a dump has started to be taken, but never finishes, in CI environments where you don't have direct access to the machine, this most likely means that macOS showed a popup asking for authentication and is waiting for you to type a password, which is not feasible to do in such environments. The issue might also manifest as an error similar to the following: + +```output +[createdump] This failure may be because createdump or the application is not properly signed and entitled. +``` + +To work around this, there are two options: + +- Set `UseAppHost` MSBuild property to false, which will cause the managed assembly to run under `dotnet` instead of the apphost executable. However, this doesn't work for xunit.v3. See [xunit/xunit#3432 GitHub issue](https://github.com/xunit/xunit/issues/3432). +- Apply a workaround similar to the following: + + ```xml + + + + ``` + + and the contents of `mtp-test-entitlements.plist` should be: + + ```xml + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.debugger + + com.apple.security.get-task-allow + + + + ``` + + The MSBuild target above can be placed in Directory.Build.targets so that it applies to all projects.