Pour spécifier un chemin différent pour dSYM vous pouvez effectuer les étapes suivantes:
Générez d'abord l'UUID pour l'exécutable en utilisant la commande suivante:
xcrun dwarfdump chemin-exécutable --uuid
Créez ensuite le répertoire en divisant les 20 premiers chiffres hexadécimaux en blocs de 4 caractères et en créant une arborescence de répertoires: chaque répertoire suivant est créé à l'intérieur du précédent. Ensuite, créez un lien symbolique dont le nom est les 12 derniers chiffres hexadécimaux dans le répertoire le plus profond. Par exemple, si l'UUID généré est: 23516BE4-29BE-350C-91C9-F36E7999F0F1
puis effectuez les dossiers: 2351/6BE4/29BE/350C/91C9/
et le lien symbolique: F36E7999F0F1
la valeur est un chemin symlinks complet aux fichiers mach-o à l'intérieur du paquet dSYM qui contient le NAIN. Si le dSYM est dans source/foo.dSYM/Contents/Resources/DWARF/foo, alors le lien doit être le chemin complet vers source/foo.dSYM/Contents/Resources/DWARF/foo (voir l'exemple ci-dessous).
La dernière partie est de dire DebugSymbols de vérifier ce cache carte fichier UUID en utilisant:
par défaut% écrire com.apple.DebugSymbols DBGFileMappedPaths chemin à votre uuids arbre
Par exemple, vous pouvez mettre les répertoires que vous avez créés sous ~/Library/SymbolCache/dsyms/UUID/(ou où vous voulez), de sorte que le chemin d'accès complet à votre dernier lien sera: ~/Library/SymbolCache/dsyms/UUID/2351/6BE4/29BE/350C/91C9/F36E7999F0F1
Et la commande:
par défaut% écrire com.apple.DebugSymbols DBGFileMappedPaths ~/Library/SymbolCache/dsyms/uuids/
Puis vérifiez avec:
defaults read com.apple.DebugSymbols DBGFileMappedPaths
source: http://lldb.llvm.org/symbols.html, LLDB: add symbols file?
Je l'ai essayé sur mon MAC OS X:
xcrun dwarfdump --uuid ./a.out
UUID: 7C9D0D55-3882-3F1B-99CA-446AFF4B5D0E (x86_64) ./a.out
mkdir PAPERINO
mv a.out.dSYM/ PAPERINO/
mkdir -p ~/Library/SymbolCache/dsyms/uuids/
mkdir -p ~/Library/SymbolCache/dsyms/uuids/7C9D0/0D55/3882/3F1B/99CA
cd ~/Library/SymbolCache/dsyms/uuids/7C9D0/0D55/3882/3F1B/99CA/
ln -s ../../../<my path>/PAPERINO/a.out.dSYM/Contents/Resources/DWARF/a.out 446AFF4B5D0E
Et enfin j'étais pouvoir lister la source dans lldb:
lldb ./a.out
(lldb) target create "./a.out"
Current executable set to './a.out' (x86_64).
(lldb) source list
6 {
7 char input[40] = {'\0'};
8 int count = 0;
Je pense que vous devriez utiliser ce DBGFileMappedPaths: http://lldb.llvm.org/symbols.html –
@terencehill, il semble que ce dont j'ai besoin. Cependant, je n'ai pas pu trouver le fichier uuid qui mappe les dossiers dSYM. Savez-vous comment générer ce fichier? il devrait être sous ~/Library/SymbolCache/dsyms/uuids mais je n'ai pas de dossier SymbolCache – Zohar81
Je ne sais pas mais ce post http://stackoverflow.com/questions/32506103/lldb-add-symbols-file dit à utilisez la commande: xcrun dwarfdump --uuid pour imprimer l'uuid de l'exécutable –