From ef3298e44e8d7ef0b983db4261bb9c8c973121c3 Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Wed, 19 Nov 2025 09:42:43 -0800 Subject: [PATCH] [docs] Add some information to DebuggingTheCompiler.md about working with the various simulators. I am adding this since I had to go spelunking around to find the SIMCTL_CHILD_ prefix which I need to debug an app. Rather than just forgetting it again, I thought it made sense to just document it here so I can forget it again. I also put in a little bit of other stuff about simctl as well while I was here. --- docs/DebuggingTheCompiler.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/DebuggingTheCompiler.md b/docs/DebuggingTheCompiler.md index 3180d890066d6..54ef0c7ecebea 100644 --- a/docs/DebuggingTheCompiler.md +++ b/docs/DebuggingTheCompiler.md @@ -52,6 +52,7 @@ benefit of all Swift developers. - [Viewing allocation history, references, and page-level info](#viewing-allocation-history-references-and-page-level-info) - [Printing memory contents](#printing-memory-contents) - [Windows Error Codes](#windows-error-codes) + - [Debugging Simulator Apps](#working-simulator-apps) - [Debugging LLDB failures](#debugging-lldb-failures) - ["Types" Log](#types-log) - ["Expression" Log](#expression-log) @@ -1201,6 +1202,15 @@ Some relevant Microsoft documentation: * https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a * https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499- +## Debugging Simulator Apps + +Sometimes one has to debug apps compiled for one of the simulators (e.x.: iOS +simulator). To manipulate the simulator from the command line, one uses the tool +called `simctl`. This lets one perform actions such as installing apps, +uninstalling apps, and of course launching apps. To pass through environment +variables to launched apps, one sets them in the calling environment using the +environment variable prefix `SIMCTL_CHILD_$ACTUAL_ENV_VAR_NAME`. + # Debugging LLDB failures Sometimes one needs to be able to while debugging actually debug LLDB and its