2013-10-13 3 views
0

J'ai une application C++/QT assez standard qui fonctionne correctement dans le débogage et la publication sur mon PC de développement. En essayant la version de release sur un PC propre il fonctionne mais une partie de la fonctionnalité (montrant la vidéo via une connexion USB) ne fonctionne tout simplement pas. Eh bien, vu cela avant et ma technique standard consiste à ajouter des informations de débogage à la version de la version, à installer le débogage à distance et à jeter un oeil. À ma grande surprise, ça fonctionne bien comme une version de build avec des informations de débogage (.pdb) Je n'ai jamais vu ça auparavant. L'utilisation de Walker à dépendances ne montre aucun problème avec les dépendances. Utilisation du profileur qui fait partie de Dependency Walker et il fonctionne également parfaitement. Je n'ai plus de techniques de débogage et la seule chose que je peux penser est d'ajouter des boîtes de message à différents endroits qui, dans une application multi-thread ne semble pas une bonne idée.Problème de débogage de version de publication

Y at-il une technique de débogage qui pourrait m'aider à trouver ce problème? Nous utilisons VS2008 et Qt 4.7.1.

Répondre

1

Affinez vos boîtes de message - utilisez un fichier journal. De votre description, il me semble que peut être une sorte de problème de condition de course/timing qui est résolu quand un thread ou autre est ralenti en étant observé par quelque chose. Ou en ajoutant des informations de débogage au binaire. En utilisant un fichier journal avec des horodatages, vous devriez être en mesure de suivre quand les choses se produisent.

+0

WindDebug est un bon ami. L'ajout d'informations de débogage et de journalisation a finalement trouvé la condition qui était une variable non initialisée. J'ai pris deux jours pour finalement le retrouver. – ExpatEgghead

1

Je pense que la journalisation est votre ami. Si vous avez plusieurs threads, vous pouvez enregistrer chaque thread dans un fichier journal différent.