Pourquoi ASAN SYMBOLIZER PATH ne fonctionne-t-il plus avec la version binaires ornés

sur Ubuntu 14.10, le llvm-symbolizer programme est installé comme /usr/bin/llvm-symbolizer-3.5. Normalement, l'adresse de désinfectant veut trouver un binaire nommé llvm-symbolizerPATH. Cependant, comme solution de contournement, il a été possible de définir explicitement ASAN_SYMBOLIZER_PATH. Ainsi, la configuration de ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.5 dans l'environnement laisserait un programme de nettoyage d'adresse instrumenté imprimer des erreurs symbolisées.

sur Ubuntu 16.04, le llvm-symbolizer le programme est de nouveau installé avec un suffixe de version, maintenant comme /usr/bin/llvm-symbolizer-3.8. Cependant, le ASAN_SYMBOLIZER_PATH le réglage n'est plus semble fonctionner. Exécution d'un programme instrumenté ASAN avec ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.8 dans l'environnement génère l'erreur suivante lors de l'ASAN détecte une erreur:

==18718==ERROR: External symbolizer path is set to '/usr/bin/llvm-symbolizer-3.8' which isn't a known symbolizer. Please set the path to the llvm-symbolizer binary or other known tool.

personne Ne sait pourquoi ce comportement a changé, ou comment restaurer l'ancien comportement? Cela semble excessivement restrictif. Le programme symbolizer que J'ai indiqué à ASAN est certainement un symbolizer connu, il se trouve juste d'avoir une étiquette de version mandatée par Ubuntu à la fin.

notez que l'ajustement PATH ne pas aide ici, puisque Ubuntu ne Livre pas un llvm-symbolizer binaire qui vient sans parure de version.

19
demandé sur acm 2016-06-28 18:01:06

2 réponses

Il s'avère, que sur Ubuntu emballage de LLVM, on peut obtenir les fioritures llvm-symbolizer binaire à partir du chemin d'accès /usr/lib/llvm-3.x/bin, donc PATH=/usr/lib/llvm-3.x/bin:$PATH [COMMAND] le truc. Je pense toujours que ce changement est une régression dans compiler_rt.

16
répondu acm 2016-07-13 17:54:13

les suivants

sudo ln -s /usr/bin/llvm-symbolizer-3.8 /usr/bin/llvm-symbolizer

fonctionne aussi pour llvm-symbolizer-4.0

(copié du commentaire de @Eraden)

3
répondu tutejszy 2018-06-30 19:24:17