2009-09-25 7 views
3

Nous cherchons des idées pour résoudre un problème de génération de liens/pdb lors de l'exécution de plusieurs devenv.com en utilisant Visual Studio 2005.Comment générer des fichiers pdb pour des versions parallèles?

Nous obtenons les erreurs intermittentes suivantes lors de l'exécution de builds parallèles en utilisant devenv.com. I.e. lorsque les conditions suivantes s'exécuter en même temps sur le même serveur construction:

devenv.com master.sln /build "Release|Win32" 
devenv.com master.sln /build "Debug|x64" 

fatal error LNK1318: Unexpected PDB error; RPC (23) '(0x000006BA)' 
error C2471: cannot update program database 

Nous voulons que les fichiers pdb, afin de les éteindre n'est pas vraiment une option. L'exécution des versions en série n'entraîne pas le problème, mais ralentit bien sûr le processus de construction.

Références trouvées jusqu'à présent indiquent

  • qu'il ya des problèmes avec la longueur des noms de fichiers qui dépassent la limite de chemin de fichier 256, cela ne semble pas être notre problème que nous pouvons construire individuellement, et le chemin + La longueur du nom de fichier est d'environ 160 caractères.
  • Il existe des problèmes avec les versions incrémentielles (mais principalement dans Visual Studio 2008) et la liaison incrémentielle est désactivée.

Nous recherchons des informations pour résoudre ce problème de processus multiple, si possible.

Comment le résoudre?

+0

Je ne pense pas qu'il y ait une solution à cela, mais pourquoi voulez-vous effectuer builds parallèle? Autant que je sache, il y a assez de parallélisme dans le Visual Studio lui-même. Il utilisera tous les cœurs de processeur disponibles sur votre serveur tout en construisant des projets séparés et même des fichiers sources séparés en parallèle. D'une certaine manière, le problème avec les fichiers PDB pendant cette compilation est déjà résolu (si vous voulez savoir comment - dites-moi). Par conséquent, je ne vois aucune raison d'exécuter plusieurs builds en parallèle, car cela n'apportera aucun bénéfice à moins que vous ayez plus de cœurs de processeurs qui génèrent des fichiers dans l'ensemble de votre solution :). –

Répondre

0

Essayez plutôt d'activer les générations parallèles de code source. Cela utilisera efficacement tous les cœurs sur votre serveur, sauf si vous avez plus de cœurs que de fichiers source dans votre solution. Voici plus d'informations sur la façon dont vous permettre en parallèle le code source builds: http://vagus.wordpress.com/2008/02/15/source-level-parallel-build-in-visual-studio-2005/

+0

Toutes les informations utiles, en particulier le lien vers/MP sur 2005. Cependant, nous souhaitons être en mesure de construire plus de 1 projet à la fois (compte tenu d'une machine de base 32, tendent à avoir la plupart des cœurs inactifs). Nous avons actuellement des versions de débogage et de version des projets divisées pour suivre les sorties du projet séparément, ce qui signifie qu'il ne devrait pas y avoir de raison de ne pas pouvoir construire les deux en même temps, sauf que l'étape pdb link se bloque. –

+0

Je ne suis pas sûr que cela soit possible. Visual Studio effectue une gestion interne pour les écritures dans les fichiers PDB lors de la création d'un projet unique. Il n'y a aucun problème, car toutes les écritures sont en file d'attente. Toutefois, lorsque vous exécutez plusieurs builds du même projet et qu'ils utilisent les mêmes fichiers PDB, il peut y avoir des problèmes, car Visual Studio ne gère pas ces écritures sur les instances de lui-même, mais uniquement dans un processus. C'est à dire. écrit de deux devenv.com fonctionnant en parallèle peut entrer en collision et provoquer ainsi l'échec d'une ou des deux versions. –

0

cela peut être un problème lié solution &, car elle produit

inattendue erreur APB; RPC (23) '(0x000006ba)'

https://software.intel.com/en-us/articles/unexpected-pdb-error-rpc-23-0x000006ba/

+0

Veuillez fournir plus d'explications. Le lien peut également devenir invalide après un certain temps. – Anton

+0

Dans les anciennes versions de l'éditeur de liens sont problématiques.Les fichiers cpp ne contiennent pas de définitions, seulement des déclarations, des en-têtes avec des déclarations, des espaces de noms vides, des commentaires, ... – Fillippo

+0

Merci @Fillippo, bien que cela concerne le compilateur Intel (Fortran), je vais vérifier s'il y a un problème similaire avec Compilateur Microsoft. –

Questions connexes