Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Débogage de la mémoire C / C ++

Débogage de la mémoire C et C ++

Identifiez la corruption sporadique de la mémoire et les défauts qui provoquent des pannes du système et exposent les failles de sécurité.

Le débogueur de mémoire ultime pour C et C ++

Parasoft Insure ++ est un outil de débogage de mémoire complet pour les développeurs de logiciels C et C ++. Vous pouvez trouver des erreurs de programmation et d'accès à la mémoire erratiques, telles que la corruption du tas, les threads non fiables, les fuites de mémoire, les tableaux hors limites et les pointeurs non valides. À l'aide d'un analyseur de code de pointe et de centaines d'heuristiques, Parasoft Insure ++ analyse également le code de l'application et signale plusieurs violations statiques possibles.

Comment ça marche?

Parasoft Insure ++ est un outil d'analyse de la mémoire d'exécution et de détection d'erreurs pour C et C ++ qui identifie automatiquement une variété d'erreurs de programmation, d'accès à la mémoire et de sécurité difficiles à trouver, ainsi que des défauts et des inefficacités potentiels dans l'utilisation de la mémoire.

Pendant les tests, Insure ++ vérifie tous les types de références mémoire, y compris celles vers la mémoire statique (globale), la pile et la mémoire partagée dans le code de l'utilisateur ou dans vos bibliothèques tierces.

Les capacités d'analyse de la mémoire Insure ++ de Parasoft sont basées sur des algorithmes d'instrumentation source brevetés. L'instrumentation du code source permet à Insure ++ de détecter plus de types d'erreurs que les autres technologies de détection d'erreurs de mémoire, et fournit des informations complètes indiquant les causes profondes des erreurs trouvées, en utilisant une base de données complète des éléments de programme et des structures de mémoire. Il existe deux façons d'utiliser Insure ++ pour l'analyse de la mémoire et la détection d'erreurs.

Mode d'instrumentation source

La première analyse, et la plus détaillée, est réalisée avec une instrumentation complète du code source. Cela nécessite que les sources d'application soient compilées et liées avec Insure ++, qui génère ses propres fichiers instrumentés qui sont transmis au compilateur réel.

Mode lien

Sans instrumentation du code source, en liant votre code objet d'application et vos bibliothèques avec Insure ++, l'outil peut «espionner» l'interface noyau / programme d'application pour détecter des erreurs telles que des fuites, de mauvaises références mémoire, des erreurs d'utilisation standard de l'API, etc.

Fonctionnalités

Lors du débogage à l'exécution, Parasoft Insure ++ vérifie toutes vos références mémoire, y compris celles vers la mémoire statique (globale), la pile et la mémoire partagée, à la fois dans votre propre code et dans des bibliothèques tierces.

  • Mémoire de pile et de tas corrompue
  • Utilisation de variables et d'objets non initialisés
  • Erreurs de limites de tableau et de chaîne sur le tas et la pile
  • Utilisation de pointeurs pendants, NULL et non initialisés
  • Tous les types d'allocation de mémoire et d'erreurs ou de discordances gratuites
  • Tous les types de fuites de mémoire
  • Incompatibilités de type dans les déclarations globales, les pointeurs et les appels de fonction

Au moment de la compilation, Parasoft Insure ++ détecte les erreurs en identifiant les écarts par rapport aux normes C / C ++ qui peuvent entraîner des fuites de mémoire ou des instabilités d'application.

  • La fonte du pointeur perd de la précision
  • Non-concordance dans la spécification de format
  • Non-concordance dans le type d'argument
  • Le code n'est pas évalué, n'a aucun effet ou est inaccessible
  • Identifiant indéfini
  • Variable déclarée, mais jamais utilisée
  • Retour du pointeur vers la variable locale
  • La fonction renvoie une valeur incohérente
  • Variables inutilisées

L'analyse de couverture de Parasoft Insure ++ permet d'identifier visuellement les sections de code qui ont été exécutées et celles qui ne l'ont pas été. Cette capacité permet aux utilisateurs de se concentrer sur le test des cas d'utilisation pour les domaines de code qui n'ont pas encore été exercés. Insure ++ peut également ajouter un «nombre de succès» aux blocs de base, indiquant le nombre de fois que chaque bloc a été exécuté pour détecter des goulots d'étranglement de performance surprenants.

Les développeurs de logiciels obtiennent une vue graphique des données en temps réel sur l'utilisation continue de la mémoire et les allocations de mémoire au fil du temps avec une visibilité spécifique sur l'utilisation globale du tas, les allocations de blocs, les éventuelles fuites en suspens, etc. Si un bloc a été divulgué, vous pouvez voir la trace de la pile d'allocation, ainsi que la trace de la pile où la fuite s'est produite. La taille globale du tas est surveillée et diverses statistiques sont suivies comme le nombre d'appels d'allocation et de désallocation.

Parasoft Insure ++ signale tout problème détecté. Les informations détaillées que vous obtenez incluent le type de bogue, le fichier source et le numéro de ligne, le contenu réel de la ligne de code source, l'expression à l'origine du problème et des informations sur tous les pointeurs et blocs de mémoire impliqués dans le bogue. Les développeurs de logiciels peuvent également voir les valeurs de pointeur, les blocs de mémoire pointés, les informations d'allocation de bloc et la trace de pile montrant comment le programme est arrivé à l'emplacement du bogue.

La plupart des projets sont volumineux et contiennent plusieurs fichiers. Néanmoins, il y a des moments où vous n'aurez besoin d'enquêter que sur une poignée de ces fichiers pour des violations présumées du runtime. Ceci est fait lorsque Parasoft Insure ++ instrumente les fichiers individuels que vous décidez d'étudier. Les fichiers individuels peuvent alors être liés à un exécutable non instrumenté. Cela détecte les erreurs dans les fichiers en question au niveau de la source avec un minimum d'effort.

Bénéficiez de l'approche Parasoft

Trouvez la cause première des problèmes de sécurité

Avec une prise de conscience accrue que la sécurité n'est plus une considération facultative, il est essentiel de s'assurer que vos applications sont sécurisées au cœur. Utilisez Parasoft Insure ++ pour vous protéger des vulnérabilités de sécurité racine résultant de problèmes de mémoire, tels que la corruption du tas, l'utilisation abusive des pointeurs, les débordements de tampon, la mémoire non initialisée et le comportement non défini ou défini par l'implémentation.

Gérer et déboguer votre utilisation de la mémoire

Parasoft Insure ++ aide les utilisateurs à localiser les problèmes de mémoire, tout en fournissant des outils pour identifier ce qui se passe à la fois dans le code et dans la mémoire. Grâce à l'analyse de couverture intégrée et à la visualisation dynamique de la mémoire, vous pouvez trouver les zones du code qui doivent être utilisées pour rechercher les erreurs et localiser les causes de la fragmentation du tas.

Trouvez des problèmes de mémoire en quelques minutes

Découvrez avec succès les bogues à haut risque pour les applications commerciales et critiques pour la sécurité dans des secteurs tels que la finance, le transport, l'automobile, l'aérospatiale et le médical. Les équipes de développement logiciel peuvent trouver des problèmes épineux en quelques semaines - voire quelques minutes - avec Parasoft Insure ++.

Problèmes qui nous prenaient plusieurs jours, voire plusieurs semaines à dépister, nous sommes en mesure de les trouver et de les résoudre régulièrement en quelques heures avec Insure ++.

-Hewlett Packard