From e4afd4d17528f9dd1bdee8a9d040cb63a4b97349 Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Mon, 19 Nov 2012 17:38:24 +0000 Subject: [PATCH] Add more info for shell commands being used by DebugSymbols.framework. llvm-svn: 168314 --- lldb/www/symbols.html | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lldb/www/symbols.html b/lldb/www/symbols.html index 7f15ca7..47eb5bf 100755 --- a/lldb/www/symbols.html +++ b/lldb/www/symbols.html @@ -118,9 +118,9 @@ will be run in the order in which they are specified until a match is found. The shell script will be invoked with a single UUID string value like "23516BE4-29BE-350C-91C9-F36E7999F0F1". The shell script must respond with a -property list being written to STDOUT. The property list must contain UUID -string values as the root key values, with a dictionary for each UUID. The dictionaries -can contain one or more of the following keys: +property list being written to STDOUT. +The property list returned must contain UUID string values as the root key values, with +a dictionary for each UUID. The dictionaries can contain one or more of the following keys: @@ -215,6 +215,18 @@ can contain one or more of the following keys: </plist> +

There is no timeout imposed on a shell script when is it asked to locate a dSYM file, so be careful to not make a shell +script that has high latency or takes a long time to download unless this +is really what you want. This can slow down debug sessions in LLDB and GDB, symbolication +with CoreSymbolication or Report Crash, with no visible feedback to the user. You can +quickly return a plist with a single DBGError key that indicates a timeout +has been reached. You might also want to exec new processes to do the downloads so +that if you return an error that indicates a timeout, your download can still proceed +after your shell script has exited so subsequent debug sessions can use the cached files. +It is also important to track when a current download is in progress in case you get multiple requests for the same UUID so +that you don't end up downloading the same file simultaneously. Also you will want +to verify the download was successful and then and only then place the file into the +cache for tools that will cache files locally.

-- 2.7.4