web-dev-qa-db-fra.com

Détecteur de fuite visuel avec Visual Studio 2017: aucun numéro de ligne de code source

J'essaie d'utiliser Visual Leak Detector avec Visual Studio 2017 avec Platform Toolset "Visual Studio 2017" J'ai défini le répertoire d'inclusion et le répertoire de bibliothèque. La génération d'informations de débogage est activée. Les symboles pour l'exe sont chargés.

(Cela fonctionne si je change le jeu d'outils de la plateforme en "Visual Studio 2013")

Avec Toolset "Visual Studio 2017", VLD détecte des fuites, mais ne résout pas les numéros de ligne:

Visual Leak Detector read settings from: C:\Program Files (x86)\Visual Leak Detector\vld.ini
Visual Leak Detector Version 2.5.1 installed.
WARNING: Visual Leak Detector detected memory leaks!
---------- Block 1 at 0x005ECDB8: 400 bytes ----------
  Leak Hash: 0x36672640, Count: 1, Total 400 bytes
  Call Stack (TID 6284):
    ucrtbased.dll!malloc()
    ConsoleApplication6.exe!0x00361FAD()
    ConsoleApplication6.exe!0x003618BC()
    ConsoleApplication6.exe!0x00361828()
    ConsoleApplication6.exe!0x00361883()
    ConsoleApplication6.exe!0x00361F7E()
    ConsoleApplication6.exe!0x00361DE0()
    ConsoleApplication6.exe!0x00361C7D()
    ConsoleApplication6.exe!0x00361F98()
    kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
    ntdll.dll!RtlInitializeExceptionChain() + 0x63 bytes
    ntdll.dll!RtlInitializeExceptionChain() + 0x36 bytes

Peut-être que quelqu'un connaît un moyen d'activer la résolution du numéro de ligne.

Merci

8
pulp

Essayez de désactiver le PDB partiel: dans les propriétés du projet, cliquez sur Éditeur de liens - Toutes les options - Générer des informations de débogage, sélectionnez "Générer des informations de débogage" au lieu de "Générer des informations de débogage pour des liens plus rapides".

7
Artem Razin

Changer les paramètres de l'éditeur de liens en / DEBUG: FULL n'était pas suffisant pour moi. Utiliser / DEBUG: FASTLINK est ok.

Cependant, je devais utiliser une correspondance à jourdbghelp.dllde Visual Studio elle-même au lieu de celle venant avec VLD (j'utilise VLD version 2.5.1 en mode x86).

Il existe quelques DLL portant ce nom. J'ai pris celui-ci et je l'ai copié dans le dossier d'exécution de mon projet (en remplacement de celui que j'avais copié à l'origine depuis l'installation de VLD).

X:\Fichiers de programme (x86)\Microsoft Visual Studio\2017\Professionnel\Common7\IDE\Extensions\TestPlatform\Extensions\Cpp

Remarque : Il se peut que vous deviez remplacer "Professionnel" par "Communauté" en fonction de la version IDE que vous avez.

0
Philip Allgaier